mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 23:18:58 +00:00
Move ConstExpr production to unify ConstVal stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3351 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3101c25293
commit
d05e359b10
@ -972,6 +972,26 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr
|
||||
$$ = $1;
|
||||
};
|
||||
|
||||
ConstVal : SIntType EINT64VAL { // integral constants
|
||||
if (!ConstantSInt::isValueValidForType($1, $2))
|
||||
ThrowException("Constant value doesn't fit in type!");
|
||||
$$ = ConstantSInt::get($1, $2);
|
||||
}
|
||||
| UIntType EUINT64VAL { // integral constants
|
||||
if (!ConstantUInt::isValueValidForType($1, $2))
|
||||
ThrowException("Constant value doesn't fit in type!");
|
||||
$$ = ConstantUInt::get($1, $2);
|
||||
}
|
||||
| BOOL TRUE { // Boolean constants
|
||||
$$ = ConstantBool::True;
|
||||
}
|
||||
| BOOL FALSE { // Boolean constants
|
||||
$$ = ConstantBool::False;
|
||||
}
|
||||
| FPType FPVAL { // Float & Double constants
|
||||
$$ = ConstantFP::get($1, $2);
|
||||
};
|
||||
|
||||
|
||||
ConstExpr: Types CAST ConstVal {
|
||||
$$ = ConstantExpr::getCast($3, $1->get());
|
||||
@ -1019,26 +1039,6 @@ ConstExpr: Types CAST ConstVal {
|
||||
};
|
||||
|
||||
|
||||
ConstVal : SIntType EINT64VAL { // integral constants
|
||||
if (!ConstantSInt::isValueValidForType($1, $2))
|
||||
ThrowException("Constant value doesn't fit in type!");
|
||||
$$ = ConstantSInt::get($1, $2);
|
||||
}
|
||||
| UIntType EUINT64VAL { // integral constants
|
||||
if (!ConstantUInt::isValueValidForType($1, $2))
|
||||
ThrowException("Constant value doesn't fit in type!");
|
||||
$$ = ConstantUInt::get($1, $2);
|
||||
}
|
||||
| BOOL TRUE { // Boolean constants
|
||||
$$ = ConstantBool::True;
|
||||
}
|
||||
| BOOL FALSE { // Boolean constants
|
||||
$$ = ConstantBool::False;
|
||||
}
|
||||
| FPType FPVAL { // Float & Double constants
|
||||
$$ = ConstantFP::get($1, $2);
|
||||
};
|
||||
|
||||
// ConstVector - A list of comma seperated constants.
|
||||
ConstVector : ConstVector ',' ConstVal {
|
||||
($$ = $1)->push_back($3);
|
||||
|
Loading…
Reference in New Issue
Block a user