Debug assertion and constexpr

2015-07-27 Thread François Dumont
Hello There are at the moment several failures in the libstdc++ testsuite when run in debug mode (_GLIBCXX_DEBUG). This is so because debug assertions are not const expressions. Several debug assertions have been removed because of this issue. So is there a way to define a function as to

Preserving tree node fields for access in LTO?

2015-07-27 Thread Uday Khedker
We have added a new field (bool ptr_arith in struct tree_base) to the tree node. We are assigning values to this field in a gimple pass in non-LTO mode and would like to access them in LTO mode in our ipa passes. It appears that all fields of tree node are not preserved in LTO mode. Is there

Re: Typecasting information in MEM[...] GIMPLE

2015-07-27 Thread Uday P. Khedker
Jakub Jelinek wrote on Monday 27 July 2015 03:50 PM: On Mon, Jul 27, 2015 at 03:35:45PM +0530, Uday Khedker wrote: We are interested in extracting the type of a tree node that appears within MEM_REF. Given a C program: struct node * * pvar; struct node qvar; pvar = (struct nod

Re: Typecasting information in MEM[...] GIMPLE

2015-07-27 Thread Richard Biener
On Mon, Jul 27, 2015 at 12:20 PM, Jakub Jelinek wrote: > On Mon, Jul 27, 2015 at 03:35:45PM +0530, Uday Khedker wrote: >> We are interested in extracting the type of a tree node that appears within >> MEM_REF. >> >> Given a C program: >> >> struct node * * pvar; >> struct node qvar; >>

Re: Typecasting information in MEM[...] GIMPLE

2015-07-27 Thread Jakub Jelinek
On Mon, Jul 27, 2015 at 03:35:45PM +0530, Uday Khedker wrote: > We are interested in extracting the type of a tree node that appears within > MEM_REF. > > Given a C program: > > struct node * * pvar; > struct node qvar; > pvar = (struct node * *) malloc (sizeof (struct node *)); >

Typecasting information in MEM[...] GIMPLE

2015-07-27 Thread Uday Khedker
We are interested in extracting the type of a tree node that appears within MEM_REF. Given a C program: struct node * * pvar; struct node qvar; pvar = (struct node * *) malloc (sizeof (struct node *)); *pvar = &qvar; It is transformed into the following GIMPLE code: void *