r360998 - Fix crash if, during evaluation of __builtin_object_size, we try to load
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Fri May 17 10:14:13 PDT 2019
-- 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 <thakis at 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 at lists.llvm.org>
> *Date: *Fri, May 17, 2019 at 3:58 AM
> *To: * <cfe-commits at 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 at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190517/bd6c90ec/attachment.html>
More information about the cfe-commits
mailing list