summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2011-09-30 20:59:49 +0000
committerDavid Greene <greened@obbligato.org>2011-09-30 20:59:49 +0000
commit74ce80f34ebc5aa6c968e4b33111fade1572f3c0 (patch)
tree74303a2dc41d34b97477ed9ab166ff5243cbcbcb
parent0bd4e1b8c9481d8fac4ae5abe335f8e1870b0e01 (diff)
downloadbcm5719-llvm-74ce80f34ebc5aa6c968e4b33111fade1572f3c0.tar.gz
bcm5719-llvm-74ce80f34ebc5aa6c968e4b33111fade1572f3c0.zip
Implement VarListElementInit:: resolveListElementReference
Implement VarListElementInit:: resolveListElementReference so that lists of lists can be indexed. llvm-svn: 140882
-rw-r--r--llvm/utils/TableGen/Record.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/Record.cpp b/llvm/utils/TableGen/Record.cpp
index 8c47888dbed..3d42a5233cf 100644
--- a/llvm/utils/TableGen/Record.cpp
+++ b/llvm/utils/TableGen/Record.cpp
@@ -1443,8 +1443,16 @@ Init *VarListElementInit::resolveBitReference(Record &R, const RecordVal *RV,
Init *VarListElementInit:: resolveListElementReference(Record &R,
const RecordVal *RV,
unsigned Elt) const {
- // FIXME: This should be implemented, to support references like:
- // int B = AA[0][1];
+ Init *Result = TI->resolveListElementReference(R, RV, Element);
+
+ if (Result) {
+ TypedInit *TInit = dynamic_cast<TypedInit *>(Result);
+ if (TInit) {
+ return TInit->resolveListElementReference(R, RV, Elt);
+ }
+ return Result;
+ }
+
return 0;
}
OpenPOWER on IntegriCloud