TestNonMemMovableStdAtomic.cpp fails on Windows with VC2019
Categories
(Developer Infrastructure :: Source Code Analysis, defect, P2)
Tracking
(firefox71 fixed)
Tracking | Status | |
---|---|---|
firefox71 | --- | fixed |
People
(Reporter: bugzilla, Assigned: andi)
Details
Attachments
(1 file)
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<CustomType> >' with non-memmovable template argument 'std::atomic<CustomType>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<bool> >' with non-memmovable template argument 'std::atomic<bool>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<char> >' with non-memmovable template argument 'std::atomic<char>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<signed char> >' with non-memmovable template argument 'std::atomic<signed char>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<unsigned char> >' with non-memmovable template argument 'std::atomic<unsigned char>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<char16_t> >' with non-memmovable template argument 'std::atomic<char16_t>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<char32_t> >' with non-memmovable template argument 'std::atomic<char32_t>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<wchar_t> >' with non-memmovable template argument 'std::atomic<wchar_t>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<short> >' with non-memmovable template argument 'std::atomic<short>'
1:23.73 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<unsigned short> >' with non-memmovable template argument 'std::atomic<unsigned short>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<int> >' with non-memmovable template argument 'std::atomic<int>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<unsigned int> >' with non-memmovable template argument 'std::atomic<unsigned int>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<long> >' with non-memmovable template argument 'std::atomic<long>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<unsigned long> >' with non-memmovable template argument 'std::atomic<unsigned long>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<long long> >' with non-memmovable template argument 'std::atomic<long long>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<unsigned long long> >' with non-memmovable template argument 'std::atomic<unsigned long long>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<void *> >' with non-memmovable template argument 'std::atomic<void *>'
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 6: Cannot instantiate 'Mover<std::atomic<CustomType *> >' with non-memmovable template argument 'std::atomic<CustomType *>'
1:23.74 error: 'note' diagnostics seen but not expected:
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 12: instantiation of 'Mover<std::atomic<CustomType> >' requested here
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<CustomType>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<CustomType>' (aka 'std::_Atomic_storage<CustomType, 1>')
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 384: '_Choose_atomic_base_t<CustomType>' (aka 'std::_Atomic_storage<CustomType, 1>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 13: instantiation of 'Mover<std::atomic<bool> >' requested here
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<bool>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<bool>' (aka 'std::_Atomic_storage<bool, 1>')
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 384: '_Choose_atomic_base_t<bool>' (aka 'std::_Atomic_storage<bool, 1>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.74 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 14: instantiation of 'Mover<std::atomic<char> >' requested here
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<char>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<char>' (aka 'std::_Atomic_integral_facade<char>')
1:23.74 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<char>' (aka 'std::_Atomic_integral_facade<char>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.75 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 15: instantiation of 'Mover<std::atomic<signed char> >' requested here
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<signed char>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<signed char>' (aka 'std::_Atomic_integral_facade<signed char>')
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<signed char>' (aka 'std::_Atomic_integral_facade<signed char>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.75 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 16: instantiation of 'Mover<std::atomic<unsigned char> >' requested here
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<unsigned char>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<unsigned char>' (aka 'std::_Atomic_integral_facade<unsigned char>')
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<unsigned char>' (aka 'std::_Atomic_integral_facade<unsigned char>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.75 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 17: instantiation of 'Mover<std::atomic<char16_t> >' requested here
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<char16_t>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<char16_t>' (aka 'std::_Atomic_integral_facade<char16_t>')
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<char16_t>' (aka 'std::_Atomic_integral_facade<char16_t>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.75 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 18: instantiation of 'Mover<std::atomic<char32_t> >' requested here
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<char32_t>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<char32_t>' (aka 'std::_Atomic_integral_facade<char32_t>')
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<char32_t>' (aka 'std::_Atomic_integral_facade<char32_t>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.75 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 19: instantiation of 'Mover<std::atomic<wchar_t> >' requested here
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<wchar_t>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<wchar_t>' (aka 'std::_Atomic_integral_facade<wchar_t>')
1:23.75 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<wchar_t>' (aka 'std::_Atomic_integral_facade<wchar_t>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 20: instantiation of 'Mover<std::atomic<short> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<short>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<short>' (aka 'std::_Atomic_integral_facade<short>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<short>' (aka 'std::_Atomic_integral_facade<short>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 21: instantiation of 'Mover<std::atomic<unsigned short> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<unsigned short>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<unsigned short>' (aka 'std::_Atomic_integral_facade<unsigned short>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<unsigned short>' (aka 'std::_Atomic_integral_facade<unsigned short>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 22: instantiation of 'Mover<std::atomic<int> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<int>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<int>' (aka 'std::_Atomic_integral_facade<int>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<int>' (aka 'std::_Atomic_integral_facade<int>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 23: instantiation of 'Mover<std::atomic<unsigned int> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<unsigned int>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<unsigned int>' (aka 'std::_Atomic_integral_facade<unsigned int>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<unsigned int>' (aka 'std::_Atomic_integral_facade<unsigned int>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 24: instantiation of 'Mover<std::atomic<long> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<long>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<long>' (aka 'std::_Atomic_integral_facade<long>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<long>' (aka 'std::_Atomic_integral_facade<long>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 25: instantiation of 'Mover<std::atomic<unsigned long> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<unsigned long>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<unsigned long>' (aka 'std::_Atomic_integral_facade<unsigned long>')
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<unsigned long>' (aka 'std::_Atomic_integral_facade<unsigned long>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.76 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 26: instantiation of 'Mover<std::atomic<long long> >' requested here
1:23.76 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<long long>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<long long>' (aka 'std::_Atomic_integral_facade<long long>')
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<long long>' (aka 'std::_Atomic_integral_facade<long long>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.77 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 27: instantiation of 'Mover<std::atomic<unsigned long long> >' requested here
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<unsigned long long>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<unsigned long long>' (aka 'std::_Atomic_integral_facade<unsigned long long>')
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1142: '_Choose_atomic_base_t<unsigned long long>' (aka 'std::_Atomic_integral_facade<unsigned long long>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.77 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 28: instantiation of 'Mover<std::atomic<void *> >' requested here
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<void *>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<void *>' (aka 'std::_Atomic_storage<void *, 8>')
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 619: '_Choose_atomic_base_t<void *>' (aka 'std::_Atomic_storage<void *, 8>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.77 File $HOME/moz/build/clang-plugin/tests/TestNonMemMovableStdAtomic.cpp Line 29: instantiation of 'Mover<std::atomic<CustomType *> >' requested here
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1369: 'std::atomic<CustomType *>' is a non-memmove()able type because it inherits from a non-memmove()able type '_Choose_atomic_base_t<CustomType *>' (aka 'std::_Atomic_pointer<CustomType *>')
1:23.77 File C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1421~1.277\include\atomic Line 1269: '_Choose_atomic_base_t<CustomType *>' (aka 'std::_Atomic_pointer<CustomType *>') is a non-memmove()able type because it is an stl-provided type not guaranteed to be memmove-able
1:23.77 72 errors generated.
1:23.79 mozmake.EXE[1]: *** [$HOME/moz/config/rules.mk:788: TestNonMemMovableStdAtomic.obj] Error 1
Comment 1•5 years ago
|
||
The priority flag is not set for this bug.
:sylvestre, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 2•5 years ago
|
||
Andi, what do you think about this issue?
thanks
Assignee | ||
Comment 3•5 years ago
|
||
What environment are you using? Are you using the compiler from the artifact build? I'm asking this because we are running this analysis for each win64 build and we don't see this kind of build errors.
Assignee | ||
Updated•5 years ago
|
Reporter | ||
Comment 4•5 years ago
|
||
It looks like my problem was that I have both VC2017 and VC2019 installed on my computer, and my build config opted to use VC2019 by default instead of VC2017. Once I added ac_add_options --with-visual-studio-version=2017
to my mozconfig, the build worked.
I guess the issue here is:
- configure should always choose VC2017; or
TestNonMemMovableStdAtomic.cpp
needs to be fixed to work with VC2019; or- Both?
Assignee | ||
Comment 5•5 years ago
|
||
Since we officially support VC2019 I think the best option here is to make TestNonMemMovableStdAtomic.cpp
compliant with it.
Assignee | ||
Comment 6•5 years ago
|
||
So what happened here is that the default atomic
primitives have been renamed starting with MSVC2019, I will push a patch for this.
Assignee | ||
Comment 7•5 years ago
|
||
Assignee | ||
Comment 8•5 years ago
|
||
Aaron could you test locally to confirm that this patch fixes the issue? I've tested it locally in a VM and indeed it seems fixed but since I cannot test in on infra
since we still use MSVC2017 it would be nice to have one more testing run performed.
Reporter | ||
Comment 9•5 years ago
|
||
WFM! I'll take the liberty of pushing this patch. Thanks!
Comment 10•5 years ago
|
||
Pushed by aklotz@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/22543ec3f220 Added more primitives to our static-analysis from MSVC 2019. r=froydnj
Reporter | ||
Updated•5 years ago
|
Comment 11•5 years ago
|
||
bugherder |
Updated•2 years ago
|
Description
•