<div dir="auto"><div><div class="gmail_extra"><div class="gmail_quote">On 19 Feb 2018 10:31, "Aleksei Sidorin via cfe-dev" <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>Hi all,</p>
<p>Consider a test case:</p>
<div>
<div>
<div><tt>#include</tt><tt> <stdio.h></tt></div>
<tt><br>
</tt>
<div><tt>typedef</tt><tt> </tt><tt>int</tt><tt> a[];</tt></div>
<tt><br>
</tt>
<div><tt>void</tt><tt> print(</tt><tt>int</tt><tt> *c) {</tt></div>
<div><tt> printf(</tt><tt>"%d\n"</tt><tt>, c[</tt><tt>0</tt><tt>]);</tt></div>
<div><tt>}</tt></div>
<tt><br>
</tt>
<div><tt>int</tt><tt> main() {</tt></div>
<div><tt> print(a{</tt><tt>2</tt><tt>});</tt></div>
<div><tt> </tt><tt>return</tt><tt> </tt><tt>0</tt><tt>;</tt></div>
<div><tt>}</tt></div>
</div>
<br>
`g++ -std=gnu++11 -fsyntax-only` fails to compile this code:
"error: taking address of temporary array". However, clang accepts
it without any warnings and there is no any ASan output for it.
Could someone explain me if it a GCC or Clang issue?</div></div></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">It's a GCC bug -- this code is valid. The array to pointer conversion is used to convert the int[1] temporary to a pointer; a reference is not bound to it.</div><div dir="auto"><br></div><div dir="auto">(GCC's behaviour is not unreasonable, though, and perhaps we should warn on such constructs. I would imagine the GCC diagnostic would be suppressed by making c a pointer to const int?)</div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><font color="#888888">
<pre class="m_141986904263821312moz-signature" cols="72">--
Best regards,
Aleksei Sidorin,
SRR, Samsung Electronics
</pre>
</font></div>
<br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div></div>