Thanks Richard! > On Jul 8, 2019, at 12:46 PM, Richard Smith via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > Committed as r365377. > > On Mon, 8 Jul 2019 at 12:43, Kristóf Umann via cfe-commits > <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: > Thank you so much! Sorry for the inconvencience, I'll be that much more > careful next time :) > > =) No worries. It's one of those pesky "no diagnostic required" cases; > they're often a pain. > > On Mon, 8 Jul 2019, 21:42 Richard Smith, <rich...@metafoo.co.uk > <mailto:rich...@metafoo.co.uk>> wrote: > I'll commit the change below once my testing finishes :) > > On Mon, 8 Jul 2019 at 12:40, Kristóf Umann via cfe-commits > <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: > Noted, thanks! Gabor, could you please fix this? > > On Mon, 8 Jul 2019, 21:37 Richard Smith, <rich...@metafoo.co.uk > <mailto:rich...@metafoo.co.uk>> wrote: > This is in any case the wrong fix. The code *is* wrong, for the reason this > compiler is reporting. > > The correct fix is to declare the explicit specializations in the header file: > > template <> void CFGDominatorTreeImpl<true>::anchor(); > template <> void CFGDominatorTreeImpl<false>::anchor(); > > Clang will tell you to do this under -Wundefined-func-template (which we > haven't turned on by default because people get this wrong too often...). > > On Mon, 8 Jul 2019 at 12:29, JF Bastien via cfe-commits > <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: > Kristof, > > It looks like your fix didn’t address all the bots: > > /Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/lib/Analysis/Dominators.cpp:14:48: > error: explicit specialization of 'anchor' after instantiation > void CFGDominatorTreeImpl</*IsPostDom=*/true>::anchor() {} > ^ > /Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h:225:3: > note: implicit instantiation first required here > ControlDependencyCalculator(CFG *cfg) > ^ > > Can you please address the issue? > http://green.lab.llvm.org/green/job/clang-stage2-coverage-R/4153/consoleFull > <http://green.lab.llvm.org/green/job/clang-stage2-coverage-R/4153/consoleFull> > > Thanks, > > JF > > >> On Jul 3, 2019, at 5:06 AM, Kristof Umann via cfe-commits >> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: >> >> Author: szelethus >> Date: Wed Jul 3 05:06:10 2019 >> New Revision: 365030 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=365030&view=rev >> <http://llvm.org/viewvc/llvm-project?rev=365030&view=rev> >> Log: >> Make a buildbot using a buggy gcc happy >> >> When specializing a template in a namespace, it has to be in a namespace >> block, else gcc will get confused. Hopefully this fixes the issue. >> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 >> <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480> >> >> Modified: >> cfe/trunk/lib/Analysis/Dominators.cpp >> >> Modified: cfe/trunk/lib/Analysis/Dominators.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/Dominators.cpp?rev=365030&r1=365029&r2=365030&view=diff >> >> <http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/Dominators.cpp?rev=365030&r1=365029&r2=365030&view=diff> >> ============================================================================== >> --- cfe/trunk/lib/Analysis/Dominators.cpp (original) >> +++ cfe/trunk/lib/Analysis/Dominators.cpp Wed Jul 3 05:06:10 2019 >> @@ -8,10 +8,12 @@ >> >> #include "clang/Analysis/Analyses/Dominators.h" >> >> -using namespace clang; >> +namespace clang { >> >> template <> >> -void clang::CFGDominatorTreeImpl</*IsPostDom=*/true>::anchor() {} >> +void CFGDominatorTreeImpl</*IsPostDom=*/true>::anchor() {} >> >> template <> >> -void clang::CFGDominatorTreeImpl</*IsPostDom=*/false>::anchor() {} >> +void CFGDominatorTreeImpl</*IsPostDom=*/false>::anchor() {} >> + >> +} // end of namespace clang >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > <https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits