r196583 - Reverting changes from r196415; this patch exposed a different, but unrelated bug regarding the __has_attribute implementation. Reverting to unblock the Chrome tsan builds.

Aaron Ballman aaron at aaronballman.com
Fri Dec 6 07:58:47 PST 2013


Author: aaronballman
Date: Fri Dec  6 09:58:47 2013
New Revision: 196583

URL: http://llvm.org/viewvc/llvm-project?rev=196583&view=rev
Log:
Reverting changes from r196415; this patch exposed a different, but unrelated bug regarding the __has_attribute implementation. Reverting to unblock the Chrome tsan builds.

Modified:
    cfe/trunk/include/clang/Basic/Attr.td
    cfe/trunk/lib/Sema/TargetAttributesSema.cpp

Modified: cfe/trunk/include/clang/Basic/Attr.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=196583&r1=196582&r2=196583&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/Attr.td (original)
+++ cfe/trunk/include/clang/Basic/Attr.td Fri Dec  6 09:58:47 2013
@@ -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.

Modified: cfe/trunk/lib/Sema/TargetAttributesSema.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TargetAttributesSema.cpp?rev=196583&r1=196582&r2=196583&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/TargetAttributesSema.cpp (original)
+++ cfe/trunk/lib/Sema/TargetAttributesSema.cpp Fri Dec  6 09:58:47 2013
@@ -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;
       }





More information about the cfe-commits mailing list