<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 10, 2015 at 6:02 PM, John McCall <span dir="ltr"><<a href="mailto:rjmccall@apple.com" target="_blank">rjmccall@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> On Mar 9, 2015, at 3:05 PM, Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
> If I remember correctly, clang's strategy for handling language linkage in C is to pretend that C has language linkage and say that everything has C language linkage.<br>
><br>
> If that is the case, the attached patch is probably the correct fix.<br>
<br>
</span>Hmm.  This is probably a crash/miscompile waiting to happen in a lot of different places.  You can produce it in potentially-evaluated code in C++, too, in an in-class initializer.<br>
<br>
We should probably push a local DeclContext when we enter a statement-expression outside of a local context.<br></blockquote><div><br></div><div>+1, my first reaction to the reduced test case was, "why are we in a record declcontext when declaring variables in statement expressions?" Finding a way to get out of that state seems like a better fix.</div></div></div></div>