]> granicus.if.org Git - clang/commitdiff
Update r130381 to check for UO_AddrOf.
authorFrancois Pichet <pichet2000@gmail.com>
Thu, 28 Apr 2011 05:12:34 +0000 (05:12 +0000)
committerFrancois Pichet <pichet2000@gmail.com>
Thu, 28 Apr 2011 05:12:34 +0000 (05:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130384 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaTemplate.cpp

index ae80181d849289d1f77c76cb6666f1dbd5259283..d5d1fcbb8401f5d76b611a0f6e5f0a2d89db6535 100644 (file)
@@ -3093,16 +3093,15 @@ CheckTemplateArgumentAddressOfObjectOrFunction(Sema &S,
   bool AddressTaken = false;
   SourceLocation AddrOpLoc;
   if (UnaryOperator *UnOp = dyn_cast<UnaryOperator>(Arg)) {
-
-    // Support &__uuidof(class_with_uuid) as a non-type template argument.
-    // Very common in Microsoft COM headers.
-    if (S.getLangOptions().Microsoft && 
-      isa<CXXUuidofExpr>(UnOp->getSubExpr())) {
-      Converted = TemplateArgument(ArgIn);
-      return false;
-    }
-
     if (UnOp->getOpcode() == UO_AddrOf) {
+      // Support &__uuidof(class_with_uuid) as a non-type template argument.
+      // Very common in Microsoft COM headers.
+      if (S.getLangOptions().Microsoft && 
+        isa<CXXUuidofExpr>(UnOp->getSubExpr())) {
+        Converted = TemplateArgument(ArgIn);
+        return false;
+      }
+
       DRE = dyn_cast<DeclRefExpr>(UnOp->getSubExpr());
       AddressTaken = true;
       AddrOpLoc = UnOp->getOperatorLoc();