[PATCH] D73091: [llvm-as] Fix assembling of index with multiple summaries sharing the same GUID
Eugene Leviant via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 21 03:23:32 PST 2020
evgeny777 created this revision.
evgeny777 added a reviewer: tejohnson.
Herald added subscribers: arphaman, dexonsmith, steven_wu, hiraditya, mehdi_amini.
Herald added a project: LLVM.
Currently llvm-as fails with error `expected ')' here`
https://reviews.llvm.org/D73091
Files:
llvm/lib/AsmParser/LLParser.cpp
llvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
Index: llvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
===================================================================
--- /dev/null
+++ llvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
@@ -0,0 +1,12 @@
+; Checks that llvm-as/llvm-dis correctly assembles/disassembles index with
+; multiple summaries with single GUID.
+; RUN: llvm-as %s -o - | llvm-dis -o - | FileCheck %s
+
+source_filename = "index.bc"
+
+^0 = module: (path: "main.bc", hash: (3499594384, 1671013073, 3271036935, 1830411232, 59290952))
+; CHECK: ^0 = module: (path: "main.bc", hash: (3499594384, 1671013073, 3271036935, 1830411232, 59290952))
+^1 = module: (path: "[Regular LTO]", hash: (0, 0, 0, 0, 0))
+; CHECK-NEXT: ^1 = module: (path: "[Regular LTO]", hash: (0, 0, 0, 0, 0))
+^2 = gv: (guid: 13351721993301222997, summaries: (function: (module: ^0, flags: (linkage: linkonce_odr, notEligibleToImport: 0, live: 1, dsoLocal: 1, canAutoHide: 1), insts: 1), function: (module: ^1, flags: (linkage: available_externally, notEligibleToImport: 1, live: 1, dsoLocal: 1, canAutoHide: 0), insts: 1)))
+; CHECK-NEXT: ^2 = gv: (guid: 13351721993301222997, summaries: (function: (module: ^0, flags: (linkage: linkonce_odr, notEligibleToImport: 0, live: 1, dsoLocal: 1, canAutoHide: 1), insts: 1), function: (module: ^1, flags: (linkage: available_externally, notEligibleToImport: 1, live: 1, dsoLocal: 1, canAutoHide: 0), insts: 1)))
Index: llvm/lib/AsmParser/LLParser.cpp
===================================================================
--- llvm/lib/AsmParser/LLParser.cpp
+++ llvm/lib/AsmParser/LLParser.cpp
@@ -8039,12 +8039,10 @@
// Have a list of summaries
if (ParseToken(lltok::kw_summaries, "expected 'summaries' here") ||
- ParseToken(lltok::colon, "expected ':' here"))
+ ParseToken(lltok::colon, "expected ':' here") ||
+ ParseToken(lltok::lparen, "expected '(' here"))
return true;
-
do {
- if (ParseToken(lltok::lparen, "expected '(' here"))
- return true;
switch (Lex.getKind()) {
case lltok::kw_function:
if (ParseFunctionSummary(Name, GUID, ID))
@@ -8061,11 +8059,10 @@
default:
return Error(Lex.getLoc(), "expected summary type");
}
- if (ParseToken(lltok::rparen, "expected ')' here"))
- return true;
} while (EatIfPresent(lltok::comma));
- if (ParseToken(lltok::rparen, "expected ')' here"))
+ if (ParseToken(lltok::rparen, "expected ')' here") ||
+ ParseToken(lltok::rparen, "expected ')' here"))
return true;
return false;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73091.239268.patch
Type: text/x-patch
Size: 2535 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200121/fd2394e4/attachment.bin>
More information about the llvm-commits
mailing list