[Bug c/59197] An alias from an always_inline function causes inconsistent behavior
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 20 10:50:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59197
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-11-20
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
And with
extern void func(void);
extern void func(void) __attribute__((alias("alias_target_func")));
extern __inline __attribute__((__always_inline__))
__attribute__((__gnu_inline__)) void func(void) { }
extern void alias_target_func(void) {}
extern void caller(void)
{
func();
}
you get
t.c:4:89: error: redefinition of 'func'
extern __inline __attribute__((__always_inline__))
__attribute__((__gnu_inline__)) void func(void) { }
^
t.c:2:13: note: previous definition of 'func' was here
extern void func(void) __attribute__((alias("alias_target_func")));
^
even though I'd say that providing an extern inline definition should
still work?
But yeah, gnu extern inlines have interesting behavior...
More information about the Gcc-bugs
mailing list