]> granicus.if.org Git - clang/commitdiff
rename some variables, improve comments.
authorChris Lattner <sabre@nondot.org>
Sun, 3 May 2009 05:59:17 +0000 (05:59 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 3 May 2009 05:59:17 +0000 (05:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70663 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaStmt.cpp

index 88c7690f86b40849e620ba4eccf5fe730665b7c2..ac5cef10f4271dce7cf555b9af494e1743d004c6 100644 (file)
@@ -1041,22 +1041,25 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc,
     unsigned TiedTo = Info.getTiedOperand();
     Expr *OutputExpr     = Exprs[TiedTo];
     ParenExpr *InputExpr = cast<ParenExpr>(Exprs[i+NumOutputs]);
-    QualType T1 = OutputExpr->getType();
-    QualType T2 = InputExpr->getType();
-    if (Context.hasSameType(T1, T2))
+    QualType InTy = InputExpr->getType();
+    QualType OutTy = OutputExpr->getType();
+    if (Context.hasSameType(InTy, OutTy))
       continue;  // All types can be tied to themselves.
     
-    
-    // Int/ptr operands are ok if they are the same size.
-    if ((T1->isIntegerType() || T1->isPointerType()) &&
-        (T2->isIntegerType() || T2->isPointerType())) {
-      if (Context.getTypeSize(T1) == Context.getTypeSize(T2))
+    // Int/ptr operands have some special cases that we allow.
+    if ((OutTy->isIntegerType() || OutTy->isPointerType()) &&
+        (InTy->isIntegerType() || InTy->isPointerType())) {
+      
+      // They are ok if they are the same size.  Tying void* to int is ok if
+      // they are the same size, for example.  This also allows tying void* to
+      // int*.
+      if (Context.getTypeSize(OutTy) == Context.getTypeSize(InTy))
         continue;
     }
     
     Diag(InputExpr->getSubExpr()->getLocStart(),
          diag::err_asm_tying_incompatible_types)
-      << T2 << T1 << OutputExpr->getSourceRange()
+      << InTy << OutTy << OutputExpr->getSourceRange()
       << InputExpr->getSourceRange();
     DeleteStmt(NS);
     return StmtError();