Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-12-02 Thread Richard Biener
On Mon, Nov 18, 2013 at 1:11 PM, Bernd Edlinger wrote: > Hi, > > > This modified test case exposes a bug in the already approved part of the > strict-volatile-bitfields patch: > > #include > > typedef struct { > char pad; > int arr[0]; > } __attribute__((packed)) str; > > str * > foo (int* s

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-18 Thread Bernd Edlinger
Hi, This modified test case exposes a bug in the already approved part of the strict-volatile-bitfields patch: #include typedef struct {   char pad;   int arr[0]; } __attribute__((packed)) str; str * foo (int* src) {   str *s = malloc (sizeof (str) + sizeof (int));   s->arr[0] = 0x12345678;

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Richard Biener
On Fri, Nov 15, 2013 at 2:24 PM, Bernd Edlinger wrote: >> >> But then why is the mode QImode in the first place? The access is >> definitely of SImode. >> > > that's in the test case: > > s->arr[0] = 0x12345678; > > > it is QImode from that in expand_assignment: > > to_rtx = expand_expr (t

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Bernd Edlinger
> > But then why is the mode QImode in the first place? The access is > definitely of SImode. > that's in the test case:   s->arr[0] = 0x12345678; it is QImode from that in expand_assignment:   to_rtx = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE); tem is "s", a MEM_REF, of QImode,

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Richard Biener
On Fri, Nov 15, 2013 at 1:08 PM, Bernd Edlinger wrote: >>> >>> hmm... >>> the above change is just not aggressive enough. >>> >>> >>> with a slightly changed test case I have now got a >>> recursion on the extract_fixed_bit_fields on ARM but >>> interestingly not on powerpc: >>> >>> #include >>>

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Bernd Edlinger
>> >> hmm... >> the above change is just not aggressive enough. >> >> >> with a slightly changed test case I have now got a >> recursion on the extract_fixed_bit_fields on ARM but >> interestingly not on powerpc: >> >> #include >> >> typedef struct { >> char pad; >> int arr[0]; >> } __attribute__(

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Richard Biener
On Fri, Nov 15, 2013 at 10:28 AM, Bernd Edlinger wrote: > Hi, > > On Thu, 14 Nov 2013 16:31:10, Richard Biener wrote: >> >> On Thu, Nov 14, 2013 at 11:16 AM, Bernd Edlinger >> wrote: >>> Hi, >>> >>> sorry, for the delay. >>> Sandra seems to be even more busy than me... >>> >>> Attached is a combi

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-15 Thread Bernd Edlinger
Hi, On Thu, 14 Nov 2013 16:31:10, Richard Biener wrote: > > On Thu, Nov 14, 2013 at 11:16 AM, Bernd Edlinger > wrote: >> Hi, >> >> sorry, for the delay. >> Sandra seems to be even more busy than me... >> >> Attached is a combined patch of the original part 1, and the update, >> in diff -up format

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-14 Thread Richard Biener
On Thu, Nov 14, 2013 at 11:16 AM, Bernd Edlinger wrote: > Hi, > > sorry, for the delay. > Sandra seems to be even more busy than me... > > Attached is a combined patch of the original part 1, and the update, > in diff -up format. > > On Mon, 11 Nov 2013 13:10:45, Richard Biener wrote: >> >> On Thu

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-14 Thread Bernd Edlinger
Hi, sorry, for the delay. Sandra seems to be even more busy than me... Attached is a combined patch of the original part 1, and the update, in diff -up format. On Mon, 11 Nov 2013 13:10:45, Richard Biener wrote: > > On Thu, Oct 31, 2013 at 1:46 AM, Sandra Loosemore > wrote: >> On 10/29/2013 02:

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-11-11 Thread Richard Biener
On Thu, Oct 31, 2013 at 1:46 AM, Sandra Loosemore wrote: > On 10/29/2013 02:51 AM, Bernd Edlinger wrote: >> >> >> On Mon, 28 Oct 2013 21:29:24, Sandra Loosemore wrote: >>> >>> On 10/28/2013 03:20 AM, Bernd Edlinger wrote: I have attached an update to your patch, that should a) fix t

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-30 Thread Sandra Loosemore
On 10/29/2013 02:51 AM, Bernd Edlinger wrote: On Mon, 28 Oct 2013 21:29:24, Sandra Loosemore wrote: On 10/28/2013 03:20 AM, Bernd Edlinger wrote: I have attached an update to your patch, that should a) fix the recursion problem. b) restrict the -fstrict-volatile-bitfields to not violate the C+

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-29 Thread Sandra Loosemore
On 10/29/2013 02:51 AM, Bernd Edlinger wrote: On Mon, 28 Oct 2013 21:29:24, Sandra Loosemore wrote: I again tried backporting the patch series along with your fix to GCC 4.8 and tested on arm-none-eabi. I found that it was still getting stuck in infinite recursion unless the test from this patc

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-29 Thread Bernd Edlinger
Hi, On Mon, 28 Oct 2013 21:29:24, Sandra Loosemore wrote: > > On 10/28/2013 03:20 AM, Bernd Edlinger wrote: >> >> On Sun, 20 Oct 2013 20:23:49, Sandra Loosemore wrote: >>> >>> I tried a backport to GCC 4.8 and tested on arm-none-eabi. On the new >>> pr56997-1.c testcase, it got stuck in infinite r

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-28 Thread Sandra Loosemore
On 10/28/2013 03:20 AM, Bernd Edlinger wrote: On Sun, 20 Oct 2013 20:23:49, Sandra Loosemore wrote: I tried a backport to GCC 4.8 and tested on arm-none-eabi. On the new pr56997-1.c testcase, it got stuck in infinite recursion between store_split_bit_field/store_fixed_bit_field and/or extract_

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-28 Thread Bernd Edlinger
Hi Sandra, On Sun, 20 Oct 2013 20:23:49, Sandra Loosemore wrote: > > On 10/18/2013 10:38 AM, Richard Biener wrote: >> Sandra Loosemore wrote: >>> On 10/18/2013 04:50 AM, Richard Biener wrote: On Sat, Sep 28, 2013 at 4:19 AM, Sandra Loosemore wrote: > This patch fixes various -fstr

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-23 Thread Bernd Edlinger
Hi, On Wed, 23 Oct 2013 14:37:43, Richard Biener wrote: > The C++ memory model says that you may not introduce a data-race > and thus you have to access Type without touching Prefix. Thanks. Right now I see the following priorities: 1. make -fno-strict-volatile-bitfields respect the C++ memory

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-23 Thread Richard Biener
On Wed, Oct 23, 2013 at 9:11 AM, Bernd Edlinger wrote: > Hi Richard/Joseph, > > I noticed, this test case crashes on arm-eabi already witout the patch. > > extern void abort (void); > > #define test_type unsigned short > #define MAGIC (unsigned short)0x102u > > typedef struct s{ > unsigned char P

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-23 Thread Bernd Edlinger
Hi Richard/Joseph, I noticed, this test case crashes on arm-eabi already witout the patch. extern void abort (void); #define test_type unsigned short #define MAGIC (unsigned short)0x102u typedef struct s{  unsigned char Prefix[1];  test_type Type; }__attribute((__packed__,__aligned__(4))) ss;

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-22 Thread Bernd Edlinger
Well, one more point where the current patch is probably wrong: the AAPCS states that for volatile bit-field access: "For a write operation the read must always occur even if the entire contents of the container will be replaced" that means struct s {   volatile int a:32; } ss; ss.a=1; //nee

RE: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-21 Thread Bernd Edlinger
Hi, On Sun, 20 Oct 2013 20:23:49, Sandra Loosemore wrote: > Hr. After some further testing, I'm afraid this patch is still > buggy. :-( > > I tried a backport to GCC 4.8 and tested on arm-none-eabi. On the new > pr56997-1.c testcase, it got stuck in infinite recursion between > store_split_bit

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-20 Thread Sandra Loosemore
On 10/18/2013 10:38 AM, Richard Biener wrote: Sandra Loosemore wrote: On 10/18/2013 04:50 AM, Richard Biener wrote: On Sat, Sep 28, 2013 at 4:19 AM, Sandra Loosemore wrote: This patch fixes various -fstrict-volatile-bitfields wrong-code bugs, including instances where bitfield values were

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-18 Thread Richard Biener
Sandra Loosemore wrote: >On 10/18/2013 04:50 AM, Richard Biener wrote: >> On Sat, Sep 28, 2013 at 4:19 AM, Sandra Loosemore >> wrote: >>> This patch fixes various -fstrict-volatile-bitfields wrong-code >bugs, >>> including instances where bitfield values were being quietly >truncated as >>> well

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-18 Thread Sandra Loosemore
On 10/18/2013 04:50 AM, Richard Biener wrote: On Sat, Sep 28, 2013 at 4:19 AM, Sandra Loosemore wrote: This patch fixes various -fstrict-volatile-bitfields wrong-code bugs, including instances where bitfield values were being quietly truncated as well as bugs relating to using the wrong width.

Re: [PATCH] reimplement -fstrict-volatile-bitfields v4, part 1/2

2013-10-18 Thread Richard Biener
On Sat, Sep 28, 2013 at 4:19 AM, Sandra Loosemore wrote: > This patch fixes various -fstrict-volatile-bitfields wrong-code bugs, > including instances where bitfield values were being quietly truncated as > well as bugs relating to using the wrong width. The code changes are > identical to those