<div dir="ltr">LGTM.<div><br></div><div>-Eli</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 21, 2013 at 2:31 PM, Christian Wailes <span dir="ltr"><<a href="mailto:chriswailes@google.com" target="_blank">chriswailes@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi dblaikie, delesley, aaron.ballman,<br>
<br>
Several asserts were unnecessarily testing the validity of attributes.  This was already assured at an earlier state of the attribute processing pipeline.  This patch removes them from several functions.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D1466" target="_blank">http://llvm-reviews.chandlerc.com/D1466</a><br>
<br>
Files:<br>
  lib/Sema/SemaDeclAttr.cpp<br>
<br>
Index: lib/Sema/SemaDeclAttr.cpp<br>
===================================================================<br>
--- lib/Sema/SemaDeclAttr.cpp<br>
+++ lib/Sema/SemaDeclAttr.cpp<br>
@@ -497,8 +497,6 @@<br>
<br>
 static bool checkGuardedVarAttrCommon(Sema &S, Decl *D,<br>
                                       const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return false;<br>
<br>
@@ -537,8 +535,6 @@<br>
 static bool checkGuardedByAttrCommon(Sema &S, Decl *D,<br>
                                      const AttributeList &Attr,<br>
                                      Expr* &Arg) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 1))<br>
     return false;<br>
<br>
@@ -584,8 +580,6 @@<br>
<br>
 static bool checkLockableAttrCommon(Sema &S, Decl *D,<br>
                                     const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return false;<br>
<br>
@@ -618,8 +612,6 @@<br>
<br>
 static void handleNoThreadSafetyAnalysis(Sema &S, Decl *D,<br>
                                          const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return;<br>
<br>
@@ -635,8 +627,6 @@<br>
<br>
 static void handleNoSanitizeAddressAttr(Sema &S, Decl *D,<br>
                                       const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return;<br>
<br>
@@ -653,8 +643,6 @@<br>
<br>
 static void handleNoSanitizeMemory(Sema &S, Decl *D,<br>
                                    const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return;<br>
<br>
@@ -670,8 +658,6 @@<br>
<br>
 static void handleNoSanitizeThread(Sema &S, Decl *D,<br>
                                    const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 0))<br>
     return;<br>
<br>
@@ -688,8 +674,6 @@<br>
 static bool checkAcquireOrderAttrCommon(Sema &S, Decl *D,<br>
                                         const AttributeList &Attr,<br>
                                         SmallVectorImpl<Expr *> &Args) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeAtLeastNumArgs(S, Attr, 1))<br>
     return false;<br>
<br>
@@ -749,8 +733,6 @@<br>
 static bool checkLockFunAttrCommon(Sema &S, Decl *D,<br>
                                    const AttributeList &Attr,<br>
                                    SmallVectorImpl<Expr *> &Args) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   // zero or more arguments ok<br>
<br>
   // check that the attribute is applied to a function<br>
@@ -824,8 +806,6 @@<br>
 static bool checkTryLockFunAttrCommon(Sema &S, Decl *D,<br>
                                       const AttributeList &Attr,<br>
                                       SmallVectorImpl<Expr *> &Args) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeAtLeastNumArgs(S, Attr, 1))<br>
     return false;<br>
<br>
@@ -878,8 +858,6 @@<br>
 static bool checkLocksRequiredCommon(Sema &S, Decl *D,<br>
                                      const AttributeList &Attr,<br>
                                      SmallVectorImpl<Expr *> &Args) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeAtLeastNumArgs(S, Attr, 1))<br>
     return false;<br>
<br>
@@ -925,8 +903,6 @@<br>
<br>
 static void handleUnlockFunAttr(Sema &S, Decl *D,<br>
                                 const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   // zero or more arguments ok<br>
<br>
   if (!isa<FunctionDecl>(D) && !isa<FunctionTemplateDecl>(D)) {<br>
@@ -948,8 +924,6 @@<br>
<br>
 static void handleLockReturnedAttr(Sema &S, Decl *D,<br>
                                    const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeNumArgs(S, Attr, 1))<br>
     return;<br>
<br>
@@ -973,8 +947,6 @@<br>
<br>
 static void handleLocksExcludedAttr(Sema &S, Decl *D,<br>
                                     const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (!checkAttributeAtLeastNumArgs(S, Attr, 1))<br>
     return;<br>
<br>
@@ -999,7 +971,6 @@<br>
<br>
 static void handleConsumesAttr(Sema &S, Decl *D,<br>
                                const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
   if (!checkAttributeNumArgs(S, Attr, 0)) return;<br>
<br>
   if (!(isa<CXXMethodDecl>(D) || isa<CXXConstructorDecl>(D))) {<br>
@@ -1015,7 +986,6 @@<br>
<br>
 static void handleCallableWhenUnconsumedAttr(Sema &S, Decl *D,<br>
                                              const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
   if (!checkAttributeNumArgs(S, Attr, 0)) return;<br>
<br>
   if (!isa<CXXMethodDecl>(D)) {<br>
@@ -1031,7 +1001,6 @@<br>
<br>
 static void handleTestsConsumedAttr(Sema &S, Decl *D,<br>
                                     const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
   if (!checkAttributeNumArgs(S, Attr, 0)) return;<br>
<br>
   if (!isa<CXXMethodDecl>(D)) {<br>
@@ -1047,7 +1016,6 @@<br>
<br>
 static void handleTestsUnconsumedAttr(Sema &S, Decl *D,<br>
                                       const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
   if (!checkAttributeNumArgs(S, Attr, 0)) return;<br>
<br>
   if (!isa<CXXMethodDecl>(D)) {<br>
@@ -1714,7 +1682,6 @@<br>
 }<br>
<br>
 static void handleNoCommonAttr(Sema &S, Decl *D, const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
   if (isa<VarDecl>(D))<br>
     D->addAttr(::new (S.Context)<br>
                NoCommonAttr(Attr.getRange(), S.Context,<br>
@@ -1725,8 +1692,6 @@<br>
 }<br>
<br>
 static void handleCommonAttr(Sema &S, Decl *D, const AttributeList &Attr) {<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   if (S.LangOpts.CPlusPlus) {<br>
     S.Diag(Attr.getLoc(), diag::err_common_not_supported_cplusplus);<br>
     return;<br>
@@ -4020,13 +3985,10 @@<br>
 }<br>
<br>
 static void handleOpenCLKernelAttr(Sema &S, Decl *D, const AttributeList &Attr){<br>
-  assert(!Attr.isInvalid());<br>
   D->addAttr(::new (S.Context) OpenCLKernelAttr(Attr.getRange(), S.Context));<br>
 }<br>
<br>
 static void handleOpenCLImageAccessAttr(Sema &S, Decl *D, const AttributeList &Attr){<br>
-  assert(!Attr.isInvalid());<br>
-<br>
   Expr *E = Attr.getArg(0);<br>
   llvm::APSInt ArgNum(32);<br>
   if (E->isTypeDependent() || E->isValueDependent() ||<br>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>