[Bug inline-asm/23399] ICE in create_tmp_var, at gimplify.c:387
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Aug 15 14:53:00 GMT 2005
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-15 14:50 -------
Confirmed, reduced testcase:
template<typename T> bool cas(const T& test_val)
{
bool ret;
__asm__ ("": :"r"(test_val));
}
struct atomic_ptr {
atomic_ptr(){}
atomic_ptr(const volatile atomic_ptr& a) { }
};
void pop()
{
atomic_ptr ne;
cas(ne);
}
This is invalid code as you are passing a struct to an inline-asm as a register (the code used to use "a"
constriant but I changed it to a "r" constaint to make it general across targets).
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|other |inline-asm
Ever Confirmed| |1
Keywords| |ice-on-invalid-code
Known to fail| |2.95 3.0.4 3.2.2 4.0.0 3.4.0
| |3.3.3
Last reconfirmed|0000-00-00 00:00:00 |2005-08-15 14:51:00
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23399
More information about the Gcc-bugs
mailing list