diff --git a/openmp/libomptarget/include/Debug.h b/openmp/libomptarget/include/Debug.h --- a/openmp/libomptarget/include/Debug.h +++ b/openmp/libomptarget/include/Debug.h @@ -53,8 +53,17 @@ OMP_INFOTYPE_ALL = 0xffffffff, }; +#define GCC_VERSION \ + (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) + +#if !defined(__clang__) && defined(__GNUC__) && GCC_VERSION < 70100 +#define USED __attribute__((used)) +#else +#define USED +#endif + // Add __attribute__((used)) to work around a bug in gcc 5/6. -static inline uint32_t __attribute__((used)) getInfoLevel() { +USED static inline uint32_t getInfoLevel() { static uint32_t InfoLevel = 0; static std::once_flag Flag{}; std::call_once(Flag, []() { @@ -66,7 +75,7 @@ } // Add __attribute__((used)) to work around a bug in gcc 5/6. -static inline uint32_t __attribute__((used)) getDebugLevel() { +USED static inline uint32_t getDebugLevel() { static uint32_t DebugLevel = 0; static std::once_flag Flag{}; std::call_once(Flag, []() { @@ -77,6 +86,9 @@ return DebugLevel; } +#undef USED +#undef GCC_VERSION + #ifndef __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS #endif