diff options
author | Chris Lattner <sabre@nondot.org> | 2003-08-03 18:29:51 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-08-03 18:29:51 +0000 |
commit | 08ca97291fe309c24a29beba2f2d770aa75c7653 (patch) | |
tree | d01b980e9040b00dac4d25140c2d8f8f696fad3a /support | |
parent | a6aff650e8af0275a615be41be3813a008edabf6 (diff) | |
download | external_llvm-08ca97291fe309c24a29beba2f2d770aa75c7653.zip external_llvm-08ca97291fe309c24a29beba2f2d770aa75c7653.tar.gz external_llvm-08ca97291fe309c24a29beba2f2d770aa75c7653.tar.bz2 |
Fix bug: TableGen/IntBitInit.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7526 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'support')
-rw-r--r-- | support/tools/TableGen/Record.cpp | 6 | ||||
-rw-r--r-- | support/tools/TableGen/Record.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/support/tools/TableGen/Record.cpp b/support/tools/TableGen/Record.cpp index 204929e..cf8aa40 100644 --- a/support/tools/TableGen/Record.cpp +++ b/support/tools/TableGen/Record.cpp @@ -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; } diff --git a/support/tools/TableGen/Record.h b/support/tools/TableGen/Record.h index 4c4ad5a..d841a2a 100644 --- a/support/tools/TableGen/Record.h +++ b/support/tools/TableGen/Record.h @@ -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); |