[PATCH] D30500: [ELF] - Do not treat colon(":") as separate token in script parser.
Rui Ueyama via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 2 09:40:13 PST 2017
ruiu added inline comments.
================
Comment at: ELF/LinkerScript.cpp:1943-1944
// no label, we assume global symbols.
- if (peek() != "local") {
- if (consume("global"))
- expect(":");
+ if (!peekLabel("local:")) {
+ consumeLabel("global:");
for (SymbolVersion V : readSymbols())
----------------
grimar wrote:
> ruiu wrote:
> > grimar wrote:
> > > ruiu wrote:
> > > > I think you can do that without defining `peekLabel`. You should remove the first two lines from readLocals().
> > > This place is not a problem to avoid use of peekLabel. But
> > > ScriptParser::readSymbols() need it anyways I believe:
> > > ```
> > > if (peek() == "}" || Error || peekLabel("local:"))
> > > break;
> > > ```
> > >
> > > We have to know when to get out from readSymbols, one of conditions is when we meet "local"
> > Do you mean it is impossible? If not, please try to edit other functions.
> Almost nothing is impossible usually.
> I'll try tomorrow though don`t think I understand why it is ok to have peek()/consume() and not ok to have peekLable + consumeLable. Isn't that consistent ?
Because I don't like the LL(2) part of the grammar.
https://reviews.llvm.org/D30500
More information about the llvm-commits
mailing list