<div dir="ltr">Also, when you find an error, you want to return after setError because setError is not a _Noreturn function.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 23, 2016 at 1:35 AM, Rafael Espíndola <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Move the check past<br>
<br>
StringRef Cur = peek();<br>
<br>
and you can reuse Cur.<br>
<br>
Cheers,<br>
Rafael<br>
<br>
<br>
On 22 June 2016 at 11:02, George Rimar via llvm-commits<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: grimar<br>
> Date: Wed Jun 22 10:02:57 2016<br>
> New Revision: 273426<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=273426&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=273426&view=rev</a><br>
> Log:<br>
> [ELF] - Show explicit error if extern keyword is used in version script.<br>
><br>
> Since we do not have plans to support it in closest future,<br>
> it is better than common script parsing error.<br>
><br>
> Modified:<br>
>     lld/trunk/ELF/SymbolListFile.cpp<br>
>     lld/trunk/test/ELF/version-script-err.s<br>
><br>
> Modified: lld/trunk/ELF/SymbolListFile.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolListFile.cpp?rev=273426&r1=273425&r2=273426&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolListFile.cpp?rev=273426&r1=273425&r2=273426&view=diff</a><br>
> ==============================================================================<br>
> --- lld/trunk/ELF/SymbolListFile.cpp (original)<br>
> +++ lld/trunk/ELF/SymbolListFile.cpp Wed Jun 22 10:02:57 2016<br>
> @@ -116,6 +116,8 @@ void VersionScriptParser::parseVersionSy<br>
>    }<br>
><br>
>    for (;;) {<br>
> +    if (peek() == "extern")<br>
> +      setError("extern keyword is not supported");<br>
>      StringRef Cur = peek();<br>
>      if (Cur == "}" || Cur == "local:" || Error)<br>
>        return;<br>
><br>
> Modified: lld/trunk/test/ELF/version-script-err.s<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/version-script-err.s?rev=273426&r1=273425&r2=273426&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/version-script-err.s?rev=273426&r1=273425&r2=273426&view=diff</a><br>
> ==============================================================================<br>
> --- lld/trunk/test/ELF/version-script-err.s (original)<br>
> +++ lld/trunk/test/ELF/version-script-err.s Wed Jun 22 10:02:57 2016<br>
> @@ -8,3 +8,8 @@<br>
>  // RUN: not ld.lld --version-script %terr1.script -shared %t.o -o %t.so 2>&1 | \<br>
>  // RUN:   FileCheck -check-prefix=ERR1 %s<br>
>  // ERR1: unclosed quote<br>
> +<br>
> +// RUN: echo "VERSION { extern "C++" {}; }; " > %terr2.script<br>
> +// RUN: not ld.lld --version-script %terr2.script -shared %t.o -o %t.so 2>&1 | \<br>
> +// RUN:   FileCheck -check-prefix=ERR2 %s<br>
> +// ERR2: extern keyword is not supported<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>