[Bug objc/36610] objc_msg_sendv is broken for targets which pass argument via registers
--- Comment #10 from ghazi at gcc dot gnu dot org 2009-03-31 19:12 --- (In reply to comment #9) I think there's plenty of data now to see where it fails. You should XFAIL it until a fix is installed to avoid noise in the testsuite results. I tried but .x files don't seem to work in this directory. Dave I can't get dg- style to work either. What I'd like to do is something like this: /* { dg-xfail-run-if PR36610 { lp64 } * } */ Janis, can you please help? Thanks. -- ghazi at gcc dot gnu dot org changed: What|Removed |Added CC||janis at gcc dot gnu dot org Last reconfirmed|2009-03-27 16:51:48 |2009-03-31 19:12:03 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36610
[Bug objc/36610] objc_msg_sendv is broken for targets which pass argument via registers
--- Comment #7 from ghazi at gcc dot gnu dot org 2009-03-27 16:51 --- Andrew - You added the testcase for this PR back in December to see which lp64 targets failed: http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01199.html It's still failing several months later. x86_64: http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01199.html ppc64: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02732.html ia64: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02716.html s390: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02491.html sh4: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02437.html etc. I think there's plenty of data now to see where it fails. You should XFAIL it until a fix is installed to avoid noise in the testsuite results. Thanks. -- ghazi at gcc dot gnu dot org changed: What|Removed |Added CC||ghazi at gcc dot gnu dot ||org, pinskia at gcc dot gnu ||dot org Last reconfirmed|2009-01-01 16:23:10 |2009-03-27 16:51:48 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36610
[Bug objc/36610] objc_msg_sendv is broken for targets which pass argument via registers
--- Comment #8 from ghazi at gcc dot gnu dot org 2009-03-27 16:55 --- (In reply to comment #7) It's still failing several months later. x86_64: http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01199.html The x86_64 link should be: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02744.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36610
[Bug objc/36610] objc_msg_sendv is broken for targets which pass argument via registers
--- Comment #9 from dave at hiauly1 dot hia dot nrc dot ca 2009-03-27 17:38 --- Subject: Re: objc_msg_sendv is broken for targets which pass argument via registers It's still failing several months later. x86_64: http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01199.html ppc64: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02732.html ia64: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02716.html s390: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02491.html sh4: http://gcc.gnu.org/ml/gcc-testresults/2009-03/msg02437.html Also, hppa. I think there's plenty of data now to see where it fails. You should XFAIL it until a fix is installed to avoid noise in the testsuite results. I tried but .x files don't seem to work in this directory. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36610
[Bug objc/36610] objc_msg_sendv is broken for targets which pass argument via registers
--- Comment #6 from matz at gcc dot gnu dot org 2009-02-12 11:32 --- I don't think it's __builtin_apply which is wrong. It's rather how it is used in libobjc. In particular register parameters are handled wrongly. libobjc objc_msg_sendv() simply tries to overwrite the first two argument slots returned by __builtin_apply_args (called in a different routine) with those it really wants in there. It uses method_get_{first,next}_argument for that which tries to use the argument pointer in that memory block. But memory pointed to by that arg pointer only contains the args passed on stack. Those passed in registers lie somewhere else (in the block returned by builtin_apply_args, but behind the arg pointer), in register order (not in argument order!). So, overwriting the argument slots doesn't actually overwrite the data which later is used in __builtin_apply -- boom. Accordingly changing the summary. -- matz at gcc dot gnu dot org changed: What|Removed |Added Component|middle-end |objc Summary|__builtin_apply is broken |objc_msg_sendv is broken for |for targets which pass |targets which pass argument |argument via registers |via registers http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36610