From d608fee8399a9fa6f2819076131c6ac30cc16eef Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 12 Mar 2020 09:57:40 +0000 Subject: [PATCH] [ARM,MVE] Fix user-namespace violation in arm_mve.h. Summary: 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 ``, then we shouldn't cause a compile error. Fixed to spell the attribute name `__overloadable__` instead. Reviewers: miyuki, MarkMurrayARM, ostannard Reviewed By: miyuki Subscribers: kristof.beyls, dmgreen, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75997 --- clang/utils/TableGen/MveEmitter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/utils/TableGen/MveEmitter.cpp b/clang/utils/TableGen/MveEmitter.cpp index 9a9fe00..f75f500 100644 --- a/clang/utils/TableGen/MveEmitter.cpp +++ b/clang/utils/TableGen/MveEmitter.cpp @@ -1874,7 +1874,7 @@ void MveEmitter::EmitHeader(raw_ostream &OS) { // 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 @@ void CdeEmitter::EmitHeader(raw_ostream &OS) { // 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"; -- 2.7.4