[llvm-dev] GEP with a null pointer base
Mehdi AMINI via llvm-dev
llvm-dev at lists.llvm.org
Thu Jul 13 17:59:12 PDT 2017
2017-07-12 11:17 GMT-07:00 Peter Lawrence via llvm-dev <
llvm-dev at lists.llvm.org>:
> David,
> Here is the definition accepted by Hal of what we’re doing
>
> > 1. Sometimes there are abstraction penalties in C++ code
> > 2. That can be optimized away after template instantiation, function
> inlining, etc
> > 3. When they for example exhibit this pattern
> > if (A) {
> > stuff;
> > } else {
> > other stuff including “undefined behavior”;
> > }
> > 4. Where the compiler assumes “undefined behavior” doesn’t actually
> happen because
> > In the C language standard it is the users responsibility to avoid it
> > 5. Therefore in this example the compiler can a) delete the else-clause
> > b) delete the if-cond, c) assume A is true and propagate that
> information
>
>
>
> We are actively deleting undefined behavior, and the question is why
> given that doing so potentially masks a real source code bug.
> At the very least deleting undefined behavior should not be the default.
>
I don't believe it is the default today: optimizations aren't turned on
unless you opt-in.
--
Mehdi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170713/daa92db7/attachment.html>
More information about the llvm-dev
mailing list