From e4be4ecce94b205e02fe9af3bb6f4a287a48e15c Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Fri, 6 Dec 2013 15:58:47 +0000 Subject: [PATCH] Reverting changes from r196415; this patch exposed a different, but unrelated bug regarding the __has_attribute implementation. Reverting to unblock the Chrome tsan builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196583 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/Attr.td | 5 +---- lib/Sema/TargetAttributesSema.cpp | 3 ++- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td index c5f78985c7..41e70f4302 100644 --- a/include/clang/Basic/Attr.td +++ b/include/clang/Basic/Attr.td @@ -920,10 +920,7 @@ def WeakRef : InheritableAttr { } def X86ForceAlignArgPointer : InheritableAttr, TargetSpecificAttr { - let Spellings = [GNU<"force_align_arg_pointer">]; - // Technically, this appertains to a FunctionDecl, but the target-specific - // code silently allows anything function-like (such as typedefs or function - // pointers), but does not apply the attribute to them. + let Spellings = []; } // Attribute to disable AddressSanitizer (or equivalent) checks. diff --git a/lib/Sema/TargetAttributesSema.cpp b/lib/Sema/TargetAttributesSema.cpp index 68f13494a3..e5eb591683 100644 --- a/lib/Sema/TargetAttributesSema.cpp +++ b/lib/Sema/TargetAttributesSema.cpp @@ -233,7 +233,8 @@ namespace { } } if (Triple.getArch() != llvm::Triple::x86_64 && - Attr.getKind() == AttributeList::AT_X86ForceAlignArgPointer) { + (Attr.getName()->getName() == "force_align_arg_pointer" || + Attr.getName()->getName() == "__force_align_arg_pointer__")) { HandleX86ForceAlignArgPointerAttr(D, Attr, S); return true; } -- 2.50.0