[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #10 from Jakub Jelinek --- Author: jakub Date: Thu Mar 19 07:53:38 2015 New Revision: 221508 URL: https://gcc.gnu.org/viewcvs?rev=221508&root=gcc&view=rev Log: PR sanitizer/65400 * ipa-split.c (find_return_bb): Allow TSAN_FUN

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-18 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #9 from Bernd Edlinger --- (In reply to Jakub Jelinek from comment #8) > Created attachment 35059 [details] > gcc5-pr65400.patch > > Untested fix for the first issue. patch looks good! and a really nice test case. one minor nit on

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #8 from Jakub Jelinek --- Created attachment 35059 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35059&action=edit gcc5-pr65400.patch Untested fix for the first issue.

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-16 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #7 from Bernd Edlinger --- (In reply to Jakub Jelinek from comment #6) > Both patches look wrong to me. > For the first change, it is wrong to add TSAN_FUNC_EXIT (), you should never > add it out of nothing. First of all, you might c

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-16 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #6 from Jakub Jelinek --- Both patches look wrong to me. For the first change, it is wrong to add TSAN_FUNC_EXIT (), you should never add it out of nothing. First of all, you might consider allowing TSAN_FUNC_EXIT () in find_return_b

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-13 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #5 from Bernd Edlinger --- Created attachment 35033 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35033&action=edit stripped down second test case For completeness, here is the stripped down test case for the tail call flag.

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-13 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #4 from Bernd Edlinger --- ok, this should fix the second regression: Index: tsan.c === --- tsan.c(revision 221355) +++ tsan.c(working copy) @@ -682,6 +682,7 @@

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-13 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #3 from Bernd Edlinger --- Hmm, I tried this: --- gcc/ipa-split.c.jj2015-02-08 21:13:01.0 +0100 +++ gcc/ipa-split.c2015-03-13 11:29:08.878923384 +0100 @@ -1509,6 +1509,16 @@ split_function (struct split_point *spli

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-12 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #2 from Bernd Edlinger --- Jakub, at that time we do not have the __tsan_func_entry calls, only the __TSAN_FUNC_EXIT thing. in opcua_string.c.038t.local-pure-const1 OpcUa_String_Clear looks like it has OpcUa_String_Clear.part.0 at t

[Bug sanitizer/65400] tsan mis-compiles inlineable C functions

2015-03-12 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65400 --- Comment #1 from Bernd Edlinger --- I think the trouble starts at opcua_string.c.039t.fnsplit : OpcUa_String_Clear (struct OpcUa_String * a_pString) { ... : # _25 = PHI <0(2), 1(3), 0(4)> if (_25 == 0) goto ; else goto ; :