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/29683] Arg split between stack/regs can cause stack corruption



------- Comment #1 from jconner at apple dot com  2006-11-01 19:11 -------
What's happening is that TER is inserting the call to GetConst in place of
'result' in the call to VerifyValues, as such:

(pre-TER)
  result_4 = GetConst (filler, a);
  VerifyValues (filler, 0, a$mbr1_5, result_4);

(post-TER)
  VerifyValues (filler, 0, a$mbr1, GetConst (filler, a));

While this itself isn't a problem, it exposes a problem in the argument
handling mechanism where an argument split between regs/stack doesn't correctly
detect collision with other in-use stack locations.  I believe this is a
problem on platforms that ACCUMULATE_OUTGOING_ARGS.  I have a patch I'll send
out for consideration.


-- 


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


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