Reverted in r310019. vedant
> On Aug 3, 2017, at 9:07 PM, Vedant Kumar <v...@apple.com> wrote: > > Hi Eli, > > I think this commit is breaking the stage2 coverage build for clang: > http://green.lab.llvm.org/green/job/clang-stage2-coverage-R_build/1402 > <http://green.lab.llvm.org/green/job/clang-stage2-coverage-R_build/1402> > > 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 > 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. > > 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: > > (lldb) p StartLoc.dump(SM) > (lldb) /src/llvm.org > <http://llvm.org/>-coverage-braces/llvm/tools/clang/include/clang/Basic/OpenCLImageTypes.def:46:1 > <Spelling=<scratch space>:153:1> > > 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. > > vedant > >> On Aug 3, 2017, at 3:27 PM, Eli Friedman via cfe-commits >> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: >> >> Author: efriedma >> Date: Thu Aug 3 15:27:36 2017 >> New Revision: 309995 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=309995&view=rev >> <http://llvm.org/viewvc/llvm-project?rev=309995&view=rev> >> Log: >> [coverage] Special-case calls to noreturn functions. >> >> The code after a noreturn call doesn't execute. >> >> The pattern in the testcase is pretty common in LLVM (a switch with >> a default case that calls llvm_unreachable). >> >> Differential Revision: https://reviews.llvm.org/D36250 >> <https://reviews.llvm.org/D36250> >> >> >> Modified: >> cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp >> cfe/trunk/test/CoverageMapping/switch.cpp >> >> Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=309995&r1=309994&r2=309995&view=diff >> >> <http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=309995&r1=309994&r2=309995&view=diff> >> ============================================================================== >> --- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp (original) >> +++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp Thu Aug 3 15:27:36 2017 >> @@ -716,6 +716,18 @@ struct CounterCoverageMappingBuilder >> terminateRegion(S); >> } >> >> + void VisitCallExpr(const CallExpr *E) { >> + extendRegion(E); >> + for (const Stmt *Child : E->children()) >> + this->Visit(Child); >> + >> + // Terminate the region when we hit a noreturn function. >> + // (This is helpful dealing with switch statements.) >> + QualType CalleeType = E->getCallee()->getType(); >> + if (getFunctionExtInfo(*CalleeType).getNoReturn()) >> + terminateRegion(E); >> + } >> + >> void VisitWhileStmt(const WhileStmt *S) { >> extendRegion(S); >> >> >> Modified: cfe/trunk/test/CoverageMapping/switch.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/switch.cpp?rev=309995&r1=309994&r2=309995&view=diff >> >> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/switch.cpp?rev=309995&r1=309994&r2=309995&view=diff> >> ============================================================================== >> --- cfe/trunk/test/CoverageMapping/switch.cpp (original) >> +++ cfe/trunk/test/CoverageMapping/switch.cpp Thu Aug 3 15:27:36 2017 >> @@ -97,3 +97,16 @@ int fallthrough(int i) { // CHECK-NEXT: >> break; >> } >> } >> + >> +void abort(void) __attribute((noreturn)); >> + // CHECK: noret >> +int noret(int x) { // CHECK-NEXT: File 0, [[@LINE]]:18 -> [[@LINE+9]]:2 >> + switch (x) { >> + default: // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:12 >> + abort(); >> + case 1: // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:13 >> + return 5; >> + case 2: // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:14 >> + return 10; >> + } >> +} >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits