summaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-12-29 22:01:50 +0000
committerChris Lattner <sabre@nondot.org>2009-12-29 22:01:50 +0000
commit42991eeb64ee178bd12ac243b0cfa7b3bde97f49 (patch)
tree3145c4ba891a479f7f883dffdc035f486585fdde /lib/AsmParser
parent442ffa1c5688f32b275f7657b5ee3646bfe8ffa3 (diff)
downloadexternal_llvm-42991eeb64ee178bd12ac243b0cfa7b3bde97f49.zip
external_llvm-42991eeb64ee178bd12ac243b0cfa7b3bde97f49.tar.gz
external_llvm-42991eeb64ee178bd12ac243b0cfa7b3bde97f49.tar.bz2
clean up some really strange code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92275 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/LLParser.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp
index d0cac3f..9de1caf 100644
--- a/lib/AsmParser/LLParser.cpp
+++ b/lib/AsmParser/LLParser.cpp
@@ -492,11 +492,12 @@ bool LLParser::ParseMDNode(MDNode *&Result) {
return false;
}
- // Create MDNode forward reference
+ // Create MDNode forward reference.
+
+ // FIXME: This is not unique enough!
std::string FwdRefName = "llvm.mdnode.fwdref." + utostr(MID);
- SmallVector<Value *, 1> Elts;
- Elts.push_back(MDString::get(Context, FwdRefName));
- MDNode *FwdNode = MDNode::get(Context, Elts.data(), Elts.size());
+ Value *V = MDString::get(Context, FwdRefName));
+ MDNode *FwdNode = MDNode::get(Context, &V, 1);
ForwardRefMDNodes[MID] = std::make_pair(FwdNode, Lex.getLoc());
Result = FwdNode;
return false;
@@ -521,12 +522,11 @@ bool LLParser::ParseNamedMetadata() {
Lex.Lex();
SmallVector<MetadataBase *, 8> Elts;
do {
- // FIXME: Eat if present.
- if (Lex.getKind() != lltok::Metadata)
- return TokError("Expected '!' here");
+ if (ParseToken(lltok::Metadata, "Expected '!' here"))
+ return true;
Lex.Lex();
- // FIXME: Will crash on mdstrings etc.
+ // FIXME: This rejects MDStrings. Are they legal in an named MDNode or not?
MDNode *N = 0;
if (ParseMDNode(N)) return true;
Elts.push_back(N);