Fix bug: TableGen/IntBitInit.td

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7526 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-08-03 18:29:51 +00:00
parent a6aff650e8
commit 08ca97291f
4 changed files with 12 additions and 2 deletions

View File

@ -93,6 +93,10 @@ Init *BitsRecTy::convertValue(TypedInit *VI) {
return 0;
}
Init *IntRecTy::convertValue(BitInit *BI) {
return new IntInit(BI->getValue());
}
Init *IntRecTy::convertValue(BitsInit *BI) {
int Result = 0;
for (unsigned i = 0, e = BI->getNumBits(); i != e; ++i)
@ -105,7 +109,7 @@ Init *IntRecTy::convertValue(BitsInit *BI) {
}
Init *IntRecTy::convertValue(TypedInit *TI) {
if (dynamic_cast<IntRecTy*>(TI->getType()))
if (TI->getType()->typeIsConvertibleTo(this))
return TI; // Accept variable if already of the right type!
return 0;
}

View File

@ -145,6 +145,7 @@ public:
struct IntRecTy : public RecTy {
Init *convertValue(UnsetInit *UI) { return (Init*)UI; }
Init *convertValue(IntInit *II) { return (Init*)II; }
Init *convertValue(BitInit *BI);
Init *convertValue(BitsInit *BI);
Init *convertValue(TypedInit *TI);

View File

@ -93,6 +93,10 @@ Init *BitsRecTy::convertValue(TypedInit *VI) {
return 0;
}
Init *IntRecTy::convertValue(BitInit *BI) {
return new IntInit(BI->getValue());
}
Init *IntRecTy::convertValue(BitsInit *BI) {
int Result = 0;
for (unsigned i = 0, e = BI->getNumBits(); i != e; ++i)
@ -105,7 +109,7 @@ Init *IntRecTy::convertValue(BitsInit *BI) {
}
Init *IntRecTy::convertValue(TypedInit *TI) {
if (dynamic_cast<IntRecTy*>(TI->getType()))
if (TI->getType()->typeIsConvertibleTo(this))
return TI; // Accept variable if already of the right type!
return 0;
}

View File

@ -145,6 +145,7 @@ public:
struct IntRecTy : public RecTy {
Init *convertValue(UnsetInit *UI) { return (Init*)UI; }
Init *convertValue(IntInit *II) { return (Init*)II; }
Init *convertValue(BitInit *BI);
Init *convertValue(BitsInit *BI);
Init *convertValue(TypedInit *TI);