I attempted to fix this in 361054. *From: *Nico Weber <tha...@chromium.org> *Date: *Fri, May 17, 2019 at 1:16 PM *To: *Richard Smith *Cc: *cfe-commits
Also on the LLVM waterfall: > http://lab.llvm.org:8011/builders/clang-x64-windows-msvc > > http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/6937/steps/stage%201%20check/logs/stdio > > (Same error.) > > *From: *Nico Weber <tha...@chromium.org> > *Date: *Fri, May 17, 2019 at 1:14 PM > *To: *Richard Smith > *Cc: *cfe-commits > > -- Testing: 49966 tests, 32 threads -- >> Testing: 0 .. 10.. 20.. >> FAIL: Clang :: SemaCXX/builtin-object-size-cxx14.cpp (14324 of 49966) >> ******************** TEST 'Clang :: >> SemaCXX/builtin-object-size-cxx14.cpp' FAILED ******************** >> Script: >> -- >> : 'RUN: at line 1'; >> c:\b\s\w\ir\k\src\third_party\llvm-bootstrap\bin\clang.exe -cc1 >> -internal-isystem >> c:\b\s\w\ir\k\src\third_party\llvm-bootstrap\lib\clang\9.0.0\include >> -nostdsysteminc -fsyntax-only -verify -std=c++14 >> C:\b\s\w\ir\k\src\third_party\llvm\tools\clang\test\SemaCXX\builtin-object-size-cxx14.cpp >> -- >> Exit Code: 1 >> >> Command Output (stdout): >> -- >> $ ":" "RUN: at line 1" >> $ "c:\b\s\w\ir\k\src\third_party\llvm-bootstrap\bin\clang.exe" "-cc1" >> "-internal-isystem" >> "c:\b\s\w\ir\k\src\third_party\llvm-bootstrap\lib\clang\9.0.0\include" >> "-nostdsysteminc" "-fsyntax-only" "-verify" "-std=c++14" >> "C:\b\s\w\ir\k\src\third_party\llvm\tools\clang\test\SemaCXX\builtin-object-size-cxx14.cpp" >> # command stderr: >> error: 'warning' diagnostics seen but not expected: >> File >> C:\b\s\w\ir\k\src\third_party\llvm\tools\clang\test\SemaCXX\builtin-object-size-cxx14.cpp >> Line 105: implicit conversion from 'unsigned long long' to 'const long' >> changes value from 18446744073709551615 to -1 >> 1 error generated. >> >> error: command failed with exit status: 1 >> >> >> https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8913196957157807760/+/steps/package_clang/0/stdout >> >> *From: *Nico Weber <tha...@chromium.org> >> *Date: *Fri, May 17, 2019 at 1:13 PM >> *To: *Richard Smith >> *Cc: *cfe-commits >> >> The test fails on Windows: >>> >>> >>> *From: *Richard Smith via cfe-commits <cfe-commits@lists.llvm.org> >>> *Date: *Fri, May 17, 2019 at 3:58 AM >>> *To: * <cfe-commits@lists.llvm.org> >>> >>> Author: rsmith >>>> Date: Fri May 17 01:01:34 2019 >>>> New Revision: 360998 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=360998&view=rev >>>> Log: >>>> Fix crash if, during evaluation of __builtin_object_size, we try to load >>>> through an invalid base. >>>> >>>> Modified: >>>> cfe/trunk/lib/AST/ExprConstant.cpp >>>> cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp >>>> >>>> Modified: cfe/trunk/lib/AST/ExprConstant.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=360998&r1=360997&r2=360998&view=diff >>>> >>>> ============================================================================== >>>> --- cfe/trunk/lib/AST/ExprConstant.cpp (original) >>>> +++ cfe/trunk/lib/AST/ExprConstant.cpp Fri May 17 01:01:34 2019 >>>> @@ -3285,6 +3285,11 @@ static bool AreElementsOfSameArray(QualT >>>> static CompleteObject findCompleteObject(EvalInfo &Info, const Expr *E, >>>> AccessKinds AK, const LValue >>>> &LVal, >>>> QualType LValType) { >>>> + if (LVal.InvalidBase) { >>>> + Info.FFDiag(E); >>>> + return CompleteObject(); >>>> + } >>>> + >>>> if (!LVal.Base) { >>>> Info.FFDiag(E, diag::note_constexpr_access_null) << AK; >>>> return CompleteObject(); >>>> >>>> Modified: cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp?rev=360998&r1=360997&r2=360998&view=diff >>>> >>>> ============================================================================== >>>> --- cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp (original) >>>> +++ cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp Fri May 17 >>>> 01:01:34 2019 >>>> @@ -97,3 +97,10 @@ void tooSmallBuf() { >>>> copy5CharsIntoStrict(small.buf); // expected-error{{no matching >>>> function for call}} >>>> } >>>> } >>>> + >>>> +namespace InvalidBase { >>>> + // Ensure this doesn't crash. >>>> + struct S { const char *name; }; >>>> + S invalid_base(); >>>> + constexpr long bos_name = __builtin_object_size(invalid_base().name, >>>> 1); >>>> +} >>>> >>>> >>>> _______________________________________________ >>>> 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