As reported here:
http://gcc.gnu.org/ml/gcc-bugs/2006-03/msg00589.html
Confirmed. Fails since GCC 4.0.0.
However, this has nothing to do with templates or inline asm as the
reduced testcase shows:
==================================
struct A
{
A(const A&);
A& operator=(const A&);
static void bar();
void foo() volatile {}
void baz() volatile;
};
void A::baz() volatile
{
foo();
bar();
}
==================================
--
Summary: [4.0/4.1/4.2 regression] ICE in cp_expr_size with
volatile
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, monitored
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26577