<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Oct 6, 2014 at 11:39 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">That would be mighty unfortunate... :/ Perhaps we can find some assertions to put in to stabilize the failure, though I haven't a clue what they'd be just yet.<br></div></blockquote><div><br></div><div>I'm staring at the .ll file diff, trying to figure out what went wrong. There are several small differences, and I wonder if they are for things like order of evaluation, where the only difference is a use-list order change.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Yep, that test case doesn't produce an assertion for me. Crud. What's a useful way for me to debug this on a Windows machine? Am I just going to have to sit with you/someone - or can I get remote access somehow (from Linux, ideally?)?</div></blockquote><div><br></div><div>Most Windows remote access solutions tend to take over the primary screen, unless you have some server OS variant, so if you want to debug it directly you'd want to rig up a local VM. This is doable, there are gwindows images you can fetch, but I'll let you know why I give up over here. :)</div><div><br></div><div>Here's the function we assert on:</div><div><pre style="color:rgb(0,0,0)">; Function Attrs: noreturn nounwind
define internal void @"\01??$assert_cast@PAVRedeclarableTemplateDecl@clang@@@@YAPAVRedeclarableTemplateDecl@clang@@ZZ"() #4 {
entry:
  tail call void @"\01?llvm_unreachable_internal@llvm@@YAXPBD0I@Z"(i8* getelementptr inbounds ([16 x i8]* @"\01??_C@_0BA@OELEAIJA@bad?5assert_cast?$AA@", i32 0, i32 0), i8* getelementptr inbounds ([51 x i8]* @"\01??_C@_0DD@BABLEMGH@?4?4?2tools?2clang?2lib?2Serialization@", i32 0, i32 0), i32 2108) #12, !dbg !34160
  unreachable, !dbg !34160
}</pre></div><div>There are no diffs in the code, but here's some related debug info that is suspiciously different:</div><div><pre style="color:rgb(0,0,0)">-!1590 = metadata !{metadata !"0x2e\00assert_cast<clang::NamespaceDecl *>\00assert_cast<clang::NamespaceDecl *>\00\002107\001\001\000\000\00256\001\002107", metadata !13, metadata !14, metadata !7, null, void ()* @"\01??$assert_cast@PAVRedeclarableTemplateDecl@clang@@@@YAPAVRedeclarableTemplateDecl@clang@@ZZ", null, null, metadata !2}
+!1590 = metadata !{metadata !"0x2e\00assert_cast<clang::NamespaceDecl *>\00assert_cast<clang::NamespaceDecl *>\00\002107\001\001\000\000\00256\001\002107", metadata !13, metadata !14, metadata !7, null, null, null, null, metadata !2} ; [ DW_TAG_subprogram ] [line 2107] [local] [def] [assert_cast<clang::NamespaceDecl *>]</pre></div><div>Thoughts?</div></div></div></div>