Thanks! The buildbots seem happier. Filipe
On Mon, Jun 29, 2015 at 6:58 PM, Richard Smith <rich...@metafoo.co.uk> wrote: > This should already be fixed; please try again with r241032. > > > On Mon, Jun 29, 2015 at 6:49 PM, Filipe Cabecinhas <fil...@gmail.com> > wrote: > >> Hi Richard, >> >> It looks like this rev caused all our bots (Mac, Windows, and Linux. >> Clean Release+Asserts builds) to fail: >> >> FAIL: Clang :: SemaCXX/override-in-system-header.cpp (6652 of 23274) >> ******************** TEST 'Clang :: >> SemaCXX/override-in-system-header.cpp' FAILED ******************** >> Script: >> -- >> /home/buildbot/Buildbot/Slave/builds/1.LLVM.Linux.Phase.2/llvm.obj/./bin/clang >> -cc1 -internal-isystem >> /home/buildbot/Buildbot/Slave/builds/1.LLVM.Linux.Phase.2/llvm.obj/bin/../lib/clang/3.7.0/include >> -nostdsysteminc -std=c++11 -isystem >> /home/buildbot/Buildbot/Slave/builds/1.LLVM.Linux.Phase.2/clang.src/test/SemaCXX/Inputs >> /home/buildbot/Buildbot/Slave/builds/1.LLVM.Linux.Phase.2/clang.src/test/SemaCXX/override-in-system-header.cpp >> -verify >> -- >> Exit Code: 1 >> >> Command Output (stderr): >> -- >> error: 'error' diagnostics seen but not expected: >> Line 10: initializer on function does not look like a pure-specifier >> Line 17: initializer on function does not look like a pure-specifier >> 2 errors generated. >> >> -- >> >> ******************** >> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. >> Testing Time: 30.62s >> ******************** >> Failing Tests (1): >> Clang :: SemaCXX/override-in-system-header.cpp >> >> >> Could you take a look? >> >> Thanks, >> >> Filipe >> >> On Mon, Jun 29, 2015 at 4:19 PM, Richard Smith < >> richard-l...@metafoo.co.uk> wrote: >> >>> Author: rsmith >>> Date: Mon Jun 29 18:19:23 2015 >>> New Revision: 241019 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=241019&view=rev >>> Log: >>> PR23942: a pure-specifier's integer literal must be spelled '0' >>> >>> Modified: >>> cfe/trunk/lib/Sema/SemaDecl.cpp >>> cfe/trunk/test/Parser/cxx-class.cpp >>> >>> Modified: cfe/trunk/lib/Sema/SemaDecl.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=241019&r1=241018&r2=241019&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) >>> +++ cfe/trunk/lib/Sema/SemaDecl.cpp Mon Jun 29 18:19:23 2015 >>> @@ -8783,6 +8783,19 @@ namespace { >>> } >>> } >>> >>> +/// Determine whether the given expression was formed from the token >>> '0'. This >>> +/// test is necessary to determine whether an initializer is really a >>> +/// pure-specifier. >>> +static bool isZeroToken(Sema &S, Expr *E) { >>> + auto *IL = dyn_cast<IntegerLiteral>(E); >>> + if (!IL || !!IL->getValue() || >>> + !IL->getType()->isSpecificBuiltinType(BuiltinType::Int)) >>> + return false; >>> + >>> + SmallString<8> Buffer; >>> + return S.PP.getSpelling(E->getLocStart(), Buffer) == "0"; >>> +} >>> + >>> /// AddInitializerToDecl - Adds the initializer Init to the >>> /// declaration dcl. If DirectInit is true, this is C++ direct >>> /// initialization rather than copy initialization. >>> @@ -8799,9 +8812,11 @@ void Sema::AddInitializerToDecl(Decl *Re >>> // With declarators parsed the way they are, the parser cannot >>> // distinguish between a normal initializer and a pure-specifier. >>> // Thus this grotesque test. >>> - IntegerLiteral *IL; >>> - if ((IL = dyn_cast<IntegerLiteral>(Init)) && IL->getValue() == 0 && >>> - Context.getCanonicalType(IL->getType()) == Context.IntTy) >>> + // >>> + // FIXME: The parser should instead treat anything that looks like a >>> + // pure-specifier as a pure-specifier, and Sema should convert it >>> to an >>> + // initializer when necessary, rather than doing things this way >>> around. >>> + if (!DirectInit && isZeroToken(*this, Init)) >>> CheckPureMethod(Method, Init->getSourceRange()); >>> else { >>> Diag(Method->getLocation(), >>> diag::err_member_function_initialization) >>> >>> Modified: cfe/trunk/test/Parser/cxx-class.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx-class.cpp?rev=241019&r1=241018&r2=241019&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/test/Parser/cxx-class.cpp (original) >>> +++ cfe/trunk/test/Parser/cxx-class.cpp Mon Jun 29 18:19:23 2015 >>> @@ -24,6 +24,16 @@ public: >>> ; // expected-warning{{extra ';' inside a class}} >>> >>> virtual int vf() const volatile = 0; >>> + >>> + virtual int vf0() = 0l; // expected-error {{does not look like a >>> pure-specifier}} >>> + virtual int vf1() = 1; // expected-error {{does not look like a >>> pure-specifier}} >>> + virtual int vf2() = 00; // expected-error {{does not look like a >>> pure-specifier}} >>> + virtual int vf3() = 0x0; // expected-error {{does not look like a >>> pure-specifier}} >>> + virtual int vf4() = 0.0; // expected-error {{does not look like a >>> pure-specifier}} >>> + virtual int vf5(){0}; // expected-error +{{}} expected-warning >>> {{unused}} >>> + virtual int vf5a(){0;}; // function definition, expected-warning >>> {{unused}} >>> + virtual int vf6()(0); // expected-error +{{}} expected-note +{{}} >>> + virtual int vf7() = { 0 }; // expected-error {{does not look like a >>> pure-specifier}} >>> >>> private: >>> int x,f(),y,g(); >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> cfe-commits@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> >> >> >
_______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits