<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Eli,<div class=""><br class=""></div><div class="">I think this commit is breaking the stage2 coverage build for clang:</div><div class=""><a href="http://green.lab.llvm.org/green/job/clang-stage2-coverage-R_build/1402" class="">http://green.lab.llvm.org/green/job/clang-stage2-coverage-R_build/1402</a></div><div class=""><br class=""></div><div class=""><pre style="word-wrap: break-word; white-space: pre-wrap;" class="">FAILED: tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o 
/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/host-compiler/bin/clang++   -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/lib/AST -I/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/tools/clang/lib/AST -I/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/tools/clang/include -Itools/clang/include -Iinclude -I/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fcolor-diagnostics -fprofile-instr-generate='/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/clang-build/profiles/%6m.profraw' -fcoverage-mapping -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG    -fno-exceptions -fno-rtti -MMD -MT tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o -MF tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o.d -o tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o -c '/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/tools/clang/lib/AST/ItaniumMangle.cpp'
fatal error: error in backend: File exit not handled before popRegions</pre></div><span class=""><div class="">I know I committed r310010 in the same window, but I get the exact same error after disabling the deferred regions patch. If I revert just this commit, there's no crash.</div><div class=""><br class=""></div><div class="">I haven't root-caused the issue. I did see that the issue is in ItaniumMangle.cpp, and it arises when we try to pop a region which starts here:</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Monaco; color: rgb(244, 244, 244); background-color: rgb(0, 0, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #747474" class="">(lldb) </span><span style="font-variant-ligatures: no-common-ligatures" class="">p StartLoc.dump(SM)</span></div><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Monaco; color: rgb(244, 244, 244); background-color: rgb(0, 0, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #747474" class="">(lldb) </span><span style="font-variant-ligatures: no-common-ligatures" class="">/src/<a href="http://llvm.org" class="">llvm.org</a>-coverage-braces/llvm/tools/clang/include/clang/Basic/OpenCLImageTypes.def:46:1 <Spelling=<scratch space>:153:1> </span></div></div></span><div class=""><br class=""></div><div class="">I need to revert this temporarily to get the bot going again. If you don't have the time to dig into this, just let me know and I'll take a closer look at what went wrong.</div><div class=""><br class=""></div><div class="">vedant</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 3, 2017, at 3:27 PM, Eli Friedman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: efriedma<br class="">Date: Thu Aug  3 15:27:36 2017<br class="">New Revision: 309995<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=309995&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=309995&view=rev</a><br class="">Log:<br class="">[coverage] Special-case calls to noreturn functions.<br class=""><br class="">The code after a noreturn call doesn't execute.<br class=""><br class="">The pattern in the testcase is pretty common in LLVM (a switch with<br class="">a default case that calls llvm_unreachable).<br class=""><br class="">Differential Revision: <a href="https://reviews.llvm.org/D36250" class="">https://reviews.llvm.org/D36250</a><br class=""><br class=""><br class="">Modified:<br class="">    cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp<br class="">    cfe/trunk/test/CoverageMapping/switch.cpp<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=309995&r1=309994&r2=309995&view=diff" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=309995&r1=309994&r2=309995&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp Thu Aug  3 15:27:36 2017<br class="">@@ -716,6 +716,18 @@ struct CounterCoverageMappingBuilder<br class="">     terminateRegion(S);<br class="">   }<br class=""><br class="">+  void VisitCallExpr(const CallExpr *E) {<br class="">+    extendRegion(E);<br class="">+    for (const Stmt *Child : E->children())<br class="">+      this->Visit(Child);<br class="">+<br class="">+    // Terminate the region when we hit a noreturn function.<br class="">+    // (This is helpful dealing with switch statements.)<br class="">+    QualType CalleeType = E->getCallee()->getType();<br class="">+    if (getFunctionExtInfo(*CalleeType).getNoReturn())<br class="">+      terminateRegion(E);<br class="">+  }<br class="">+<br class="">   void VisitWhileStmt(const WhileStmt *S) {<br class="">     extendRegion(S);<br class=""><br class=""><br class="">Modified: cfe/trunk/test/CoverageMapping/switch.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/switch.cpp?rev=309995&r1=309994&r2=309995&view=diff" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/switch.cpp?rev=309995&r1=309994&r2=309995&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/test/CoverageMapping/switch.cpp (original)<br class="">+++ cfe/trunk/test/CoverageMapping/switch.cpp Thu Aug  3 15:27:36 2017<br class="">@@ -97,3 +97,16 @@ int fallthrough(int i) { // CHECK-NEXT:<br class="">     break;<br class="">   }<br class=""> }<br class="">+<br class="">+void abort(void) __attribute((noreturn));<br class="">+                   // CHECK: noret<br class="">+int noret(int x) { // CHECK-NEXT: File 0, [[@LINE]]:18 -> [[@LINE+9]]:2<br class="">+  switch (x) {<br class="">+  default:         // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:12<br class="">+    abort();<br class="">+  case 1:         // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:13<br class="">+    return 5;<br class="">+  case 2:         // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:14<br class="">+    return 10;<br class="">+  }<br class="">+}<br class=""><br class=""><br class="">_______________________________________________<br class="">cfe-commits mailing list<br class=""><a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits<br class=""></div></div></blockquote></div><br class=""></div></body></html>