<div dir="ltr">On 19 September 2013 16:50, Riyaz Puthiyapurayil <span dir="ltr"><<a href="mailto:Riyaz.Puthiyapurayil@synopsys.com" target="_blank">Riyaz.Puthiyapurayil@synopsys.com</a>></span> wrote:<br><div class="gmail_extra">

<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal">Can someone confirm whether the following is a known clang bug?</p></div></div></blockquote><div><br></div><div>Yes, this was just fixed, literally minutes ago in r191064.</div><div><br></div><div>Nick<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"> I am having a lot of trouble compiling some old legacy code due to this error. I know “using namespace” is horrible but that doesn’t make it illegal (g++ accepts this). The
 fix is easy but there are just too many instances of this in the legacy code. The following is not from the code I am trying to compile but is derived from an example in the C++11 standard (7.3.4 note 6)<u></u><u></u></p>


<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>foo.cpp:<u></u><u></u></b></p>
<p class="MsoNormal"><span style="font-family:Consolas">namespace A {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C" int g();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C++" int h();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">namespace B {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C" int g();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C++" int h(int);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">using namespace A;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">using namespace B;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">void f() {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    g(); // okay: name g refers to the same entity<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    h(); // okay: overload resolution selects A::h<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">foo.cpp:12:5: error: call to 'g' is ambiguous<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    g(); // okay: name g refers to the same entity<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    ^<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">foo.cpp:2:20: note: candidate function<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C" int g();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">                   ^<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">foo.cpp:6:20: note: candidate function<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    extern "C" int g();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">                   ^<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">1 error generated.<u></u><u></u></span></p>
</div>
</div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>