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 middle-end/36303] location list incomplete for spilled registers



------- Comment #4 from gcaprino at gmail dot com  2008-05-22 23:03 -------
(In reply to comment #3)
> >I'm sorry, but I don't understand what you mean.
>         *((unsigned int *)(&(p1)->data[0])),
> You are accessing a char array as an unsigned int which violates C/C++ aliasing
> rules and causes undefined code at runtime.

Ah, I see what you mean. Yes, you are right.
That came out of some macro expansion.
Unfortunately I can still see the problem in the
location list when I reference the array elements
without the casts:
     _Log("abc",
        (__FUNCTION__+((__FUNCTION__[(sizeof("FSS") - 1)] == '_') ?
(sizeof("FSS") - 1) + 1 : (sizeof("FSS") - 1))),
        237 , (p1)->f1, (p1)->length,
        p1->data[0], p1->data[4],  p1->data[8],
        p1->data[12], p1->data[16], p1->data[20],
        p1->data[24], p1->data[28], p1->data[32],
        p1->data[40], p1->data[48], p1->data[56], p2);


-- 


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


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