simon_tatham created this revision.
simon_tatham added reviewers: miyuki, MarkMurrayARM, ostannard.
Herald added subscribers: cfe-commits, danielkiss, dmgreen, kristof.beyls.
Herald added a project: clang.

We were generating the declarations of polymorphic intrinsics using
`__attribute__((overloadable))`. But `overloadable` is a valid
identifier for an end user to define as a macro in a C program, and if
they do that before including `<arm_mve.h>`, then we shouldn't cause a
compile error.

Fixed to spell the attribute name `__overloadable__` instead.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75997

Files:
  clang/utils/TableGen/MveEmitter.cpp


Index: clang/utils/TableGen/MveEmitter.cpp
===================================================================
--- clang/utils/TableGen/MveEmitter.cpp
+++ clang/utils/TableGen/MveEmitter.cpp
@@ -1874,7 +1874,7 @@
         // match your call".
 
         OS << "static __inline__ __attribute__(("
-           << (Polymorphic ? "overloadable, " : "")
+           << (Polymorphic ? "__overloadable__, " : "")
            << "__clang_arm_builtin_alias(__builtin_arm_mve_" << Int.fullName()
            << ")))\n"
            << RetTypeName << FunctionName << "(" << ArgTypesString << ");\n";
@@ -2041,7 +2041,7 @@
       // Emit the actual declaration. See MveEmitter::EmitHeader for detailed
       // comments
       OS << "static __inline__ __attribute__(("
-         << (Polymorphic ? "overloadable, " : "")
+         << (Polymorphic ? "__overloadable__, " : "")
          << "__clang_arm_builtin_alias(__builtin_arm_" << 
Int.builtinExtension()
          << "_" << Int.fullName() << ")))\n"
          << RetTypeName << FunctionName << "(" << ArgTypesString << ");\n";


Index: clang/utils/TableGen/MveEmitter.cpp
===================================================================
--- clang/utils/TableGen/MveEmitter.cpp
+++ clang/utils/TableGen/MveEmitter.cpp
@@ -1874,7 +1874,7 @@
         // match your call".
 
         OS << "static __inline__ __attribute__(("
-           << (Polymorphic ? "overloadable, " : "")
+           << (Polymorphic ? "__overloadable__, " : "")
            << "__clang_arm_builtin_alias(__builtin_arm_mve_" << Int.fullName()
            << ")))\n"
            << RetTypeName << FunctionName << "(" << ArgTypesString << ");\n";
@@ -2041,7 +2041,7 @@
       // Emit the actual declaration. See MveEmitter::EmitHeader for detailed
       // comments
       OS << "static __inline__ __attribute__(("
-         << (Polymorphic ? "overloadable, " : "")
+         << (Polymorphic ? "__overloadable__, " : "")
          << "__clang_arm_builtin_alias(__builtin_arm_" << Int.builtinExtension()
          << "_" << Int.fullName() << ")))\n"
          << RetTypeName << FunctionName << "(" << ArgTypesString << ");\n";
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to