summaryrefslogtreecommitdiff
path: root/utils/TableGen/Record.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-07-30 04:16:52 +0000
committerChris Lattner <sabre@nondot.org>2003-07-30 04:16:52 +0000
commitf1b36f9a71eb267f04b7bd3a32aca9bc69f71e97 (patch)
treecd3fa00389b8ebe51f31767b138a3cea826b2ccc /utils/TableGen/Record.cpp
parent9b929aa7495ee0b5d389370baeb332456632b2fe (diff)
downloadllvm-f1b36f9a71eb267f04b7bd3a32aca9bc69f71e97.tar.gz
llvm-f1b36f9a71eb267f04b7bd3a32aca9bc69f71e97.tar.bz2
llvm-f1b36f9a71eb267f04b7bd3a32aca9bc69f71e97.tar.xz
Allow passing lists through variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/Record.cpp')
-rw-r--r--utils/TableGen/Record.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/utils/TableGen/Record.cpp b/utils/TableGen/Record.cpp
index 72c5a230e5..a54f8e238b 100644
--- a/utils/TableGen/Record.cpp
+++ b/utils/TableGen/Record.cpp
@@ -116,6 +116,14 @@ Init *ListRecTy::convertValue(ListInit *LI) {
return LI;
}
+Init *ListRecTy::convertValue(TypedInit *TI) {
+ // Ensure that TI is compatible with our class.
+ if (ListRecTy *LRT = dynamic_cast<ListRecTy*>(TI->getType()))
+ if (LRT->getElementClass() == getElementClass())
+ return TI;
+ return 0;
+}
+
void RecordRecTy::print(std::ostream &OS) const {
OS << Rec->getName();
}
@@ -127,12 +135,12 @@ Init *RecordRecTy::convertValue(DefInit *DI) {
return DI;
}
-Init *RecordRecTy::convertValue(TypedInit *VI) {
- // Ensure that VI is compatible with Rec.
- if (RecordRecTy *RRT = dynamic_cast<RecordRecTy*>(VI->getType()))
+Init *RecordRecTy::convertValue(TypedInit *TI) {
+ // Ensure that TI is compatible with Rec.
+ if (RecordRecTy *RRT = dynamic_cast<RecordRecTy*>(TI->getType()))
if (RRT->getRecord()->isSubClassOf(getRecord()) ||
RRT->getRecord() == getRecord())
- return VI;
+ return TI;
return 0;
}