This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug inline-asm/16194] [3.3/3.4/4.0 Regression] global register with inline-asm and clobered
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jan 2005 06:33:18 -0000
- Subject: [Bug inline-asm/16194] [3.3/3.4/4.0 Regression] global register with inline-asm and clobered
- References: <20040625091107.16194.prafullat@kpitcummins.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-15 06:33 -------
This was caused by:
2002-09-23 Hans-Peter Nilsson <hp@axis.com>
* doc/extend.texi (Extended Asm): Clarify that overlap between
asm-declared register variables used in an asm and the asm clobber
list is not allowed.
* stmt.c (decl_conflicts_with_clobbers_p): New function.
(expand_asm_operands): Keep track of clobbered registers. Call
decl_conflicts_with_clobbers_p for each input and output operand.
If no conflicts found before, also do conflict sanity check when
emitting clobbers.
But I don't understand why we hit the ICE instead of the error.
Oh, now I know why, because g (and m) can have an INDIRECT_REF.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |hp at axis dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16194