summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-08-03 18:29:51 +0000
committerChris Lattner <sabre@nondot.org>2003-08-03 18:29:51 +0000
commit08ca97291fe309c24a29beba2f2d770aa75c7653 (patch)
treed01b980e9040b00dac4d25140c2d8f8f696fad3a /utils
parenta6aff650e8af0275a615be41be3813a008edabf6 (diff)
downloadllvm-08ca97291fe309c24a29beba2f2d770aa75c7653.tar.gz
llvm-08ca97291fe309c24a29beba2f2d770aa75c7653.tar.bz2
llvm-08ca97291fe309c24a29beba2f2d770aa75c7653.tar.xz
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 'utils')
-rw-r--r--utils/TableGen/Record.cpp6
-rw-r--r--utils/TableGen/Record.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/utils/TableGen/Record.cpp b/utils/TableGen/Record.cpp
index 204929e024..cf8aa40e22 100644
--- a/utils/TableGen/Record.cpp
+++ b/utils/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/utils/TableGen/Record.h b/utils/TableGen/Record.h
index 4c4ad5a6b8..d841a2af05 100644
--- a/utils/TableGen/Record.h
+++ b/utils/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);