* Code cleanups
authorChris Lattner <sabre@nondot.org>
Thu, 18 Jul 2002 05:18:37 +0000 (05:18 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 18 Jul 2002 05:18:37 +0000 (05:18 +0000)
* Fix a REALLY misleading error message

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

lib/AsmParser/llvmAsmParser.y

index d865742c85b6176e346bde3ce906165a5a072150..a9e4e75d44c2748fa733b0e919a26bce0f25bde5 100644 (file)
@@ -191,7 +191,7 @@ static void InsertType(const Type *Ty, vector<PATypeHolder> &Types) {
 
 static const Type *getTypeVal(const ValID &D, bool DoNotImprovise = false) {
   switch (D.Type) {
-  case 0: {                 // Is it a numbered definition?
+  case ValID::NumberVal: {                 // Is it a numbered definition?
     unsigned Num = (unsigned)D.Num;
 
     // Module constants occupy the lowest numbered slots...
@@ -205,7 +205,7 @@ static const Type *getTypeVal(const ValID &D, bool DoNotImprovise = false) {
       return CurMeth.Types[Num];
     break;
   }
-  case 1: {                // Is it a named definition?
+  case ValID::NameVal: {                // Is it a named definition?
     string Name(D.Name);
     SymbolTable *SymTab = 0;
     if (inFunctionScope()) SymTab = CurMeth.CurrentFunction->getSymbolTable();
@@ -300,7 +300,7 @@ static Value *getValNonImprovising(const Type *Ty, const ValID &D) {
       return ConstantBool::get(D.ConstPool64 != 0);
     } else {
       if (!ConstantSInt::isValueValidForType(Ty, D.ConstPool64))
-       ThrowException("Symbolic constant pool value '" +
+       ThrowException("Signed integral constant '" +
                       itostr(D.ConstPool64) + "' is invalid for type '" + 
                       Ty->getDescription() + "'!");
       return ConstantSInt::get(Ty, D.ConstPool64);
@@ -309,7 +309,8 @@ static Value *getValNonImprovising(const Type *Ty, const ValID &D) {
   case ValID::ConstUIntVal:     // Is it an unsigned const pool reference?
     if (!ConstantUInt::isValueValidForType(Ty, D.UConstPool64)) {
       if (!ConstantSInt::isValueValidForType(Ty, D.ConstPool64)) {
-       ThrowException("Integral constant pool reference is invalid!");
+       ThrowException("Integral constant '" + utostr(D.UConstPool64) +
+                       "' is invalid or out of range!");
       } else {     // This is really a signed reference.  Transmogrify.
        return ConstantSInt::get(Ty, D.ConstPool64);
       }
@@ -969,11 +970,10 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr
   };
 
 
-// FIXME: ConstExpr::get never return null!
+// FIXME: ConstExpr::get never return null!  Do checking here in the parser.
 ConstExpr: Types CAST ConstVal {
-    ConstantExpr* CPE = ConstantExpr::get($2, $3, $1->get());
-    if (CPE == 0) ThrowException("constant expression builder returned null!");
-    $$ = CPE;
+    $$ = ConstantExpr::get($2, $3, $1->get());
+    if ($$ == 0) ThrowException("constant expression builder returned null!");
   }
   | Types GETELEMENTPTR '(' ConstVal IndexList ')' {
     vector<Constant*> IdxVec;
@@ -985,24 +985,20 @@ ConstExpr: Types CAST ConstVal {
 
     delete $5;
 
-    ConstantExpr* CPE = ConstantExpr::get($2, $4, IdxVec, $1->get());
-    if (CPE == 0) ThrowException("constant expression builder returned null!");
-    $$ = CPE;
+    $$ = ConstantExpr::get($2, $4, IdxVec, $1->get());
+    if ($$ == 0) ThrowException("constant expression builder returned null!");
   }
   | Types UnaryOps ConstVal {
-    ConstantExpr* CPE = ConstantExpr::get($2, $3, $1->get());
-    if (CPE == 0) ThrowException("constant expression builder returned null!");
-    $$ = CPE;
+    $$ = ConstantExpr::get($2, $3, $1->get());
+    if ($$ == 0) ThrowException("constant expression builder returned null!");
   }
   | Types BinaryOps ConstVal ',' ConstVal {
-    ConstantExpr* CPE = ConstantExpr::get($2, $3, $5, $1->get());
-    if (CPE == 0) ThrowException("constant expression builder returned null!");
-    $$ = CPE;
+    $$ = ConstantExpr::get($2, $3, $5, $1->get());
+    if ($$ == 0) ThrowException("constant expression builder returned null!");
   }
   | Types ShiftOps ConstVal ',' ConstVal {
-    ConstantExpr* CPE = ConstantExpr::get($2, $3, $5, $1->get());
-    if (CPE == 0) ThrowException("constant expression builder returned null!");
-    $$ = CPE;
+    $$ = ConstantExpr::get($2, $3, $5, $1->get());
+    if ($$ == 0) ThrowException("constant expression builder returned null!");
   }
   ;