<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(136, 136, 136); "><div><font class="Apple-style-span" color="#000000">Hello, please consider the following simple c++ code:</font></div>

<div><font class="Apple-style-span" color="#000000">% cat Main.cc</font></div><div><font class="Apple-style-span" color="#000000">//first alias </font></div><div><font class="Apple-style-span" color="#000000">namespace original_namespace {}  // decl 1</font></div>

<div><font class="Apple-style-span" color="#000000">namespace client_namespace {</font></div><div><font class="Apple-style-span" color="#000000">  namespace alias_ns = original_namespace;</font></div><div><font class="Apple-style-span" color="#000000">}</font></div>

<div><font class="Apple-style-span" color="#000000"><br></font></div><div><font class="Apple-style-span" color="#000000">//second alias</font></div><div><font class="Apple-style-span" color="#000000">namespace original_namespace {} //decl 2</font></div>

<div><div><font class="Apple-style-span" color="#000000">namespace client_namespace {</font></div><div><font class="Apple-style-span" color="#000000">  namespace alias_ns = original_namespace;</font></div><div><font class="Apple-style-span" color="#000000">}</font></div>

</div><div><font class="Apple-style-span" color="#000000"><br></font></div><div><font class="Apple-style-span" color="#000000">This does not build with clang++ and does build with g++</font></div><div><font class="Apple-style-span" color="#000000">. I get the following diagnosis:</font></div>

<div><font class="Apple-style-span" color="#000000">Main.cc:16:11: error: redefinition of 'alias_ns' as different kind of symbol</font></div><div><font class="Apple-style-span" color="#000000"><br></font></div><div>

<font class="Apple-style-span" color="#000000">namespace alias_ns = original_namespace;</font></div><div><font class="Apple-style-span" color="#000000">                  ^</font></div><div><font class="Apple-style-span" color="#000000">Main.cc:16:1: note: previous definition was here:</font></div>

<div><font class="Apple-style-span" color="#000000">namespace alias_ns = original_namespace;</font></div><div><font class="Apple-style-span" color="#000000">^</font></div><div><font class="Apple-style-span" color="#000000"><br>

</font></div><div><font class="Apple-style-span" color="#000000">Of course this is a silly example, but I came across this when some similar code was included again and again from different source files. I have put this into a simple single file to see if I was still getting the problem, and yes.</font></div>

<div><font class="Apple-style-span" color="#000000"><br></font></div><div><font class="Apple-style-span" color="#000000">Even more surprising is when you comment  decl2 of namespace original_namespace, no error ! I cannot understand why. Then I thought that maybe clang was mispointing the error that was in the second declaration of original_namespace. It is not the case, as only commenting the second alias instruction and keeping decl1 works.</font></div>

<div><font class="Apple-style-span" color="#000000"><br></font></div><div><font class="Apple-style-span" color="#000000">I am using clang and llvm 2.7 (not svn)</font></div><div><font class="Apple-style-span" color="#000000"><br>

</font></div><div><font class="Apple-style-span" color="#000000">Regards,</font></div><font class="Apple-style-span" color="#000000"><br clear="all">Romain<br></font></span>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(136, 136, 136); "><font color="#888888"><br></font></span></div>