<div dir="ltr"><div dir="ltr">The names are dropped to save memory when a release build of the compiler is being used. This is what you probably want on a release compiler you intend to ship since it should be faster. The NDEBUG check is an easy way to tell the difference between release and debug builds. People probably don't want to have to remember to set an additional cmake option to make a release compiler faster.<div><br></div><div>The -fdiscard-value-names/-fno-discard-value-names was added about a year ago <a href="https://reviews.llvm.org/D42887">https://reviews.llvm.org/D42887</a>  not sure if there is more discussion about the asserts behavior discussed there.<br><div><br clear="all"><div><div dir="ltr" class="gmail_signature">~Craig</div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jan 9, 2019 at 2:25 PM David Greene <<a href="mailto:dag@cray.com">dag@cray.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Craig Topper via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> writes:<br>
<br>
> And the clang behavior can be controlled with -<br>
> fdiscard-value-names/-fno-discard-value-names<br>
<br>
That's a little better for users, but again, why should the default<br>
behavior change based on whether or not asserts are enabled?<br>
<br>
                          -David<br>
</blockquote></div>