Undefined constant is crashing streams - g++ bug?

2012-04-28 Thread Daniel Marschall
Hello, I think I have found a bug in G++ . Please submit it to the bug tracker (I do not want to open an account there) if you think it is a bug - I am not sure about it. While I worked with "search+replace" I accidently had following in my source code: const char* DUMMY = DUMMY; It is am

Re: Should gcc give warning for this case?

2012-04-28 Thread Miles Bader
Qun-Ying writes: > No warning at all. Should gcc warn about the *next pointer points to > an unknown structure? I know it is allow by the standard, but most of > the case, it indicates some error in the code. Hmm? Where do you expect to warn? You never dereference the pointer, so there's no e

Should gcc give warning for this case?

2012-04-28 Thread Qun-Ying
For the simple program, forward.c: #include typedef struct _item_st { int data; struct item_st *next; } item_t; int main (int argc, char *argv[]) { item_t head = {0, NULL}; head.data = 1; printf ("head.data: %d ptr: %p\n", head.data, (void *)head.next); return 0; } I

gcc-4.7-20120428 is now available

2012-04-28 Thread gccadmin
Snapshot gcc-4.7-20120428 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20120428/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 4.7 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches

making sizeof(void*) different from sizeof(void(*)())

2012-04-28 Thread Peter Bigot
The MSP430's split address space and ISA make it expensive to place data above the 64 kB boundary, but cheap to place code there. So I'm looking for a way to use HImode for data pointers, but PSImode for function pointers. If gcc supports this, it's not obvious how. I get partway there with FUNC

Re: IRA and two-phase load/store

2012-04-28 Thread Bernd Schmidt
On 04/27/2012 11:31 PM, Greg McGary wrote: I'm working on a port that does loads& stores in two phases. Every load/store is funneled through the intermediate registers "ld" and "st" standing between memory and the rest of the register file. Example: ld=4(rB) ... ...

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Eric Botcazou
> The instruction is generated according to cstoresi4/addsi_addgeu > pattern during expanding. > > ;; Used as part of the expansion of thumb les sequence. > (define_insn "thumb1_addsi3_addgeu" > [(set (match_operand:SI 0 "s_register_operand" "=l") > (plus:SI (plus:SI (match_operand:SI 1 "

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Bin.Cheng
On Sat, Apr 28, 2012 at 6:13 PM, Eric Botcazou wrote: >> Yes, the reason here should be the pattern for insn 79 has predicates on >> its operands and does not allow constant here. > > And there is no way to get rid of the 2 pluses and thus change the pattern? > > -- > Eric Botcazou The instructio

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Eric Botcazou
> Yes, the reason here should be the pattern for insn 79 has predicates on > its operands and does not allow constant here. And there is no way to get rid of the 2 pluses and thus change the pattern? -- Eric Botcazou

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Bin.Cheng
On Sat, Apr 28, 2012 at 5:15 PM, Eric Botcazou wrote: >> I am sorry for misleading description. By "propagate register 172 in >> insn79 and delete insn78" >> I was meaning that gcc replaces reg 172 in insn79 with another >> register contains ZERO and >> that register(saying reg X) is defined in ot

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Eric Botcazou
> I am sorry for misleading description. By "propagate register 172 in > insn79 and delete insn78" > I was meaning that gcc replaces reg 172 in insn79 with another > register contains ZERO and > that register(saying reg X) is defined in other basic blocks. OK, in this case I think you need to find

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Bin.Cheng
On Sat, Apr 28, 2012 at 4:55 PM, Eric Botcazou wrote: >> I noticed that global passes before combine, like loop-invariant/cprop/cse2 >> some time have conflicts with combine. >> The combine pass can only operates with basic block, while these global >> passes move insns across basic block and left

Re: conflicts between combine and pre global passes?

2012-04-28 Thread Eric Botcazou
> I noticed that global passes before combine, like loop-invariant/cprop/cse2 > some time have conflicts with combine. > The combine pass can only operates with basic block, while these global > passes move insns across basic block and left no description info. > > For example, a case I encountered