On 10/05/2016 06:51 PM, Marek Polacek wrote:
On Wed, Oct 05, 2016 at 05:29:49PM +0200, Jakub Jelinek wrote:
Hi!

When writing test for this PR, I've noticed ICE if the header is compiled
without -fsanitize=undefined, but source is compiled with it.

We had various issues like this in the past, and we handle it by calling
initialize_sanitizer_builtins, which does nothing if the sanitizer bultins
are already created, but after loading PCH (which can kill them) can fix stuff
up again.  I found various spots where the call has been missing in the
ubsan instrumentation, but common feature of all those spots is first
calling ubsan_create_data and only then using builtin_decl_explicit
for the ubsan builtins.  So, this patch puts the initialization call into
that routine, which fixes all uses, and removes the two calls that are now
unnecessary because of that.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

LGTM, but can't approve neither.

Ok. Although I wonder, pass_ubsan::execute calls this function: why isn't this enough? Maybe we just need to add it to other pass execute functions as well?


Bernd

Reply via email to