This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/43456] gcc -O code generation error



------- Comment #6 from pinskia at gcc dot gnu dot org  2010-03-20 21:18 -------
Just to clarify we have:
((i_push_value(f, (f->fp - 1)),
(--f->sp)->type = 0x01, f->sp->u.number = ((Int) 0x1L), i_index(f),
(--f->sp)->type = 0x01, f->sp->u.number = ((Int) 0x8L), kf_and(f),

(f->sp++)->u.number) ? ((Int) 0x1L) : ((Int) 0x0L))

Followed by:
(((--f->sp)->type = 0x01, f->sp->u.number = ivar10, (f->argp + 3)->u.number =
ivar3, i_funcall(f, (object *) ((void *)0), (array *) ((void *)0), 0, 5 , 1),
(f->sp++)->u.number) ? ((Int) 0x4L) : ((Int) 0x0L))

And those are combined with a | so we don't have a sequence point between those
expressions so the warning is correct and GCC is correct for -O0 and -O1
because of the missing sequence point.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43456


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]