For PR1312:
authorReid Spencer <rspencer@reidspencer.com>
Sat, 7 Apr 2007 16:10:37 +0000 (16:10 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sat, 7 Apr 2007 16:10:37 +0000 (16:10 +0000)
For the short CALL/INVOKE syntax, the signedness of the result type is two
extractions away from the type argument because its a POINTER to function
type, not a function type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35735 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-upgrade/UpgradeParser.y

index 9cc29fb61b4971bf284d1301ca41c09bf4d765ad..c344a5ada8e190c124043e5ef6da37c6b7cf0401 100644 (file)
@@ -3291,7 +3291,10 @@ BBTerminatorInst
       $$.S.copy($3.S);
     } else {
       FTySign = $3.S;
-      $$.S.copy($3.S.get(0)); // 0th element of FuncTy sign is result ty
+      // Get the signedness of the result type. $3 is the pointer to the
+      // function type so we get the 0th element to extract the function type,
+      // and then the 0th element again to get the result type.
+      $$.S.copy($3.S.get(0).get(0)); 
     }
     $4.S.makeComposite(FTySign);
     Value *V = getVal(PFTy, $4);   // Get the function we're calling...
@@ -3688,7 +3691,10 @@ InstVal
       $$.S.copy($3.S);
     } else {
       FTySign = $3.S;
-      $$.S.copy($3.S.get(0)); // 0th element of FuncTy signedness is result sign
+      // Get the signedness of the result type. $3 is the pointer to the
+      // function type so we get the 0th element to extract the function type,
+      // and then the 0th element again to get the result type.
+      $$.S.copy($3.S.get(0).get(0)); 
     }
     $4.S.makeComposite(FTySign);