ext-cryptopp/TestPrograms/test_nodevirtualize.cpp
Jeffrey Walton 0b5747421b
Add -fno-devirtualize when using GCC 12 (GH #1134, GH #1141, PR #1147)
This is not a fix since it only treats the symptom of GCC removing live code. We do not know why GCC is doing it.
2022-08-24 23:00:04 -04:00

20 lines
594 B
C++

#include <string>
// https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
int main(int argc, char* argv[])
{
// GCC 12 is removing live code. We don't know why.
// https://github.com/weidai11/cryptopp/issues/1134 and
// https://github.com/weidai11/cryptopp/issues/1141
#if defined(__linux__) && (GCC_VERSION >= 120000)
// On successful compile -fno-devirtualize will be used
// to work around the problem.
;;
#else
int x[-1];
#endif
return 0;
}