<div dir="ltr"><div>-- Testing: 49966 tests, 32 threads --<br>Testing: 0 .. 10.. 20..<br>FAIL: Clang :: SemaCXX/builtin-object-size-cxx14.cpp (14324 of 49966)<br>******************** TEST 'Clang :: SemaCXX/builtin-object-size-cxx14.cpp' FAILED ********************<br>Script:<br>--<br>: '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<br>--<br>Exit Code: 1<br><br>Command Output (stdout):<br>--<br>$ ":" "RUN: at line 1"<br>$ "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"<br># command stderr:<br>error: 'warning' diagnostics seen but not expected: <br>  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<br>1 error generated.<br><br>error: command failed with exit status: 1<br></div><div><br></div><a href="https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8913196957157807760/+/steps/package_clang/0/stdout">https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8913196957157807760/+/steps/package_clang/0/stdout</a><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><strong>From: </strong>Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org">thakis@chromium.org</a>></span><br><strong>Date: </strong>Fri, May 17, 2019 at 1:13 PM<br><strong>To: </strong>Richard Smith<br><strong>Cc: </strong>cfe-commits<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">The test fails on Windows:<div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><strong>From: </strong>Richard Smith via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span><br><strong>Date: </strong>Fri, May 17, 2019 at 3:58 AM<br><strong>To: </strong> <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>><br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: rsmith<br>
Date: Fri May 17 01:01:34 2019<br>
New Revision: 360998<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=360998&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=360998&view=rev</a><br>
Log:<br>
Fix crash if, during evaluation of __builtin_object_size, we try to load<br>
through an invalid base.<br>
<br>
Modified:<br>
    cfe/trunk/lib/AST/ExprConstant.cpp<br>
    cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp<br>
<br>
Modified: cfe/trunk/lib/AST/ExprConstant.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=360998&r1=360997&r2=360998&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=360998&r1=360997&r2=360998&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/AST/ExprConstant.cpp (original)<br>
+++ cfe/trunk/lib/AST/ExprConstant.cpp Fri May 17 01:01:34 2019<br>
@@ -3285,6 +3285,11 @@ static bool AreElementsOfSameArray(QualT<br>
 static CompleteObject findCompleteObject(EvalInfo &Info, const Expr *E,<br>
                                          AccessKinds AK, const LValue &LVal,<br>
                                          QualType LValType) {<br>
+  if (LVal.InvalidBase) {<br>
+    Info.FFDiag(E);<br>
+    return CompleteObject();<br>
+  }<br>
+<br>
   if (!LVal.Base) {<br>
     Info.FFDiag(E, diag::note_constexpr_access_null) << AK;<br>
     return CompleteObject();<br>
<br>
Modified: cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp?rev=360998&r1=360997&r2=360998&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp?rev=360998&r1=360997&r2=360998&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp (original)<br>
+++ cfe/trunk/test/SemaCXX/builtin-object-size-cxx14.cpp Fri May 17 01:01:34 2019<br>
@@ -97,3 +97,10 @@ void tooSmallBuf() {<br>
   copy5CharsIntoStrict(small.buf); // expected-error{{no matching function for call}}<br>
 }<br>
 }<br>
+<br>
+namespace InvalidBase {<br>
+  // Ensure this doesn't crash.<br>
+  struct S { const char *name; };<br>
+  S invalid_base();<br>
+  constexpr long bos_name = __builtin_object_size(invalid_base().name, 1);<br>
+}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>
</blockquote></div>