<div dir="ltr">And, reverted in r290189 as it ICEs GCC 4.8<div><br></div><div><a href="http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-selfhost/builds/602/steps/build%20stage%201/logs/stdio">http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-selfhost/builds/602/steps/build%20stage%201/logs/stdio</a><br></div><div><br></div><div><pre style="font-family:"courier new",courier,monotype,monospace;font-size:medium"><span class="inbox-inbox-stdout">[4/2173] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
FAILED: /usr/lib/ccache/c++   -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib/Support -I/home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/lib/Support -Iinclude -I/home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include -mcpu=cortex-a15 -mfpu=vfpv3 -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3    -UNDEBUG  -fno-exceptions -fno-rtti -MMD -MT lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o -c /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/lib/Support/MD5.cpp
In file included from /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/ADT/StringMap.h:17:0,
                 from /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/Support/Host.h:17,
                 from /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/ADT/Hashing.h:49,
                 from /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/ADT/ArrayRef.h:13,
                 from /home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/lib/Support/MD5.cpp:40:
/home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/ADT/StringRef.h: In constructor ‘constexpr llvm::StringRef::StringRef(const char*, size_t)’:
/home/linaro/buildbot/clang-cmake-armv7-a15-selfhost/llvm/include/llvm/ADT/StringRef.h:90:62: internal compiler error: Segmentation fault
                                                    length)) {}
                                                              ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.</span></pre></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 20, 2016 at 10:08 AM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Appears to work fine, submitted in r290188.</div><div dir="ltr" class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Mon, Dec 19, 2016 at 8:41 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" class="gmail_msg" target="_blank">dblaikie@gmail.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Ping on Eli's feedback - it sounds plausible to me.</div><br class="gmail_msg"><div class="gmail_quote gmail_msg"></div><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Dec 13, 2016 at 10:38 AM Eli Friedman via Phabricator via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br class="gmail_msg"></div></div><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">efriedma added inline comments.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
================<br class="gmail_msg">
Comment at: include/llvm/ADT/StringRef.h:90<br class="gmail_msg">
-        assert((data || length == 0) &&<br class="gmail_msg">
-        "StringRef cannot be built from a NULL argument with non-null length");<br class="gmail_msg">
-      }<br class="gmail_msg">
----------------<br class="gmail_msg">
zturner wrote:<br class="gmail_msg">
> efriedma wrote:<br class="gmail_msg">
> > mehdi_amini wrote:<br class="gmail_msg">
> > > Too bad we're losing the assert, but I see why. An alternative is another (possibly protected) ctor that would be constexpr and used by `StringLiteral`<br class="gmail_msg">
> > Stupid trick to save the assert:<br class="gmail_msg">
> ><br class="gmail_msg">
> >     /*implicit*/ constexpr StringRef(const char *data, long length)<br class="gmail_msg">
> >         : Data(data), Length((data || length == 0) ? length : (assert(0 && "Bad StringRef"), 0)) { }<br class="gmail_msg">
> ><br class="gmail_msg">
> ><br class="gmail_msg">
> Won't this still complain that `assert` is not a constant expression and thus can't be used in a `constexpr` function?<br class="gmail_msg">
No... formally, [expr.const] in the C++11 standard says that when checking whether an expression is a constant expression, "conditional operations that are not evaluated are not considered".  In practice, this means you'll get an error at compile time only if the condition is false, which is exactly the behavior you want.<br class="gmail_msg">
<br class="gmail_msg">
I actually screwed up the implementation slightly; it's not a no-op if assertions are turned off, but that's easy to fix:<br class="gmail_msg">
<br class="gmail_msg">
    /*implicit*/ constexpr StringRef(const char *data, long length)<br class="gmail_msg">
        : Data(data), Length((data || length == 0) ? length : (assert(0 && "Bad StringRef"), length)) { }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Repository:<br class="gmail_msg">
  rL LLVM<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D27686" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D27686</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg"></blockquote></div><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div>
</blockquote></div></div></blockquote></div>