VisualStudio 2022: C4746 concerning "volatile" triggers under ARM64
(1) By treh (tobireh) on 2021-11-15 14:42:37 [source]
When compiling the sqlite3 source code in the recently released VisualStudio 2022 for ARM64 with warning C4746 enabled, this triggers
error C4746: volatile access of '<expression>' is subject to /volatile:<iso|ms> setting; consider using __iso_volatile_load/store intrinsic functions
in numerours lines.
Does this need attention or is sqlite already designed to work without the additional memory fences that are added in the /volatile:ms mode? In the latter case, might it be a good idea disable C4746 via #pragma warning
?
Repro:
- Visual Studio 2022 -> New Project -> Console App
- Add sqlite3.c (almalgamtion) to the source files
- In the configuration drop-down (set to
x64
by default), click "Configuration Manager"- Active Solution Platform -> "<New...>"
ARM64
, Copy fromx64
- [OK], [CLOSE]
- Right Click on Project in the Solution Explorer
- Properties -> "C/C++" -> Advanced
- Treat Specific Warnings as Errors: 4746
- [OK]
- Compile
(2) By Gunter Hick (gunter_hick) on 2021-11-18 13:34:10 in reply to 1 [link] [source]
Maybe you will get more traffic if you include the exact version of SQLite you are attempting to compile and some of the actual warning messages.