Index: flang/include/flang/Common/idioms.h =================================================================== --- flang/include/flang/Common/idioms.h +++ flang/include/flang/Common/idioms.h @@ -20,6 +20,7 @@ #include #include #include +#include "llvm/Support/Compiler.h" #if __GNUC__ == 7 // Avoid a deduction bug in GNU 7.x headers by forcing the answer. @@ -98,10 +99,6 @@ } \ template constexpr bool T{class_trait_ns_##T::trait_value()}; -#if !defined ATTRIBUTE_UNUSED && (__clang__ || __GNUC__) -#define ATTRIBUTE_UNUSED __attribute__((unused)) -#endif - // Define enum class NAME with the given enumerators, a static // function EnumToString() that maps enumerators to std::string, // and a constant NAME_enumSize that captures the number of items @@ -116,11 +113,11 @@ #define ENUM_CLASS(NAME, ...) \ enum class NAME { __VA_ARGS__ }; \ - ATTRIBUTE_UNUSED static constexpr std::size_t NAME##_enumSize{[] { \ + LLVM_ATTRIBUTE_UNUSED static constexpr std::size_t NAME##_enumSize{[] { \ enum { __VA_ARGS__ }; \ return Fortran::common::ListItemCount{__VA_ARGS__}.value; \ }()}; \ - ATTRIBUTE_UNUSED static inline std::string EnumToString(NAME e) { \ + LLVM_ATTRIBUTE_UNUSED static inline std::string EnumToString(NAME e) { \ return Fortran::common::EnumIndexToString( \ static_cast(e), #__VA_ARGS__); \ }