https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57855
torvald at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
Status|UNCONFIRMED |NEW
Last reconfirmed| |2016-01-21
Component|libitm |c
Version|unknown |6.0
Ever confirmed|0 |1
--- Comment #3 from torvald at gcc dot gnu.org ---
I can confirm that this still happens with r232693 if the test program is
compiled as a C program; a warning is produced, but there is no error.
However, if compiling the reproducer as a C++ program, an error is returned, as
required by the TM TS:
pr57855.c:28:14: error: invalid conversion from ‘void (*)(const char*, int,
const char*, int, const void*)’ to ‘ADD_STAT {aka void (*)(const char*, int,
const char*, int, const void*) transaction_safe}’ [-fpermissive]
bar(my_func);
I'm not sure whether the initial TM specification required an error, but I
think it's better to keep this open given that ISO C++ SG5 people are working
on / interested in a variant of the TM TS for C (ie, so that we don't forget
about it). Eventually, I would suppose that we phase out support for the old
TM specification. Therefore, I've also reduced the priority of this and
associated this with the C frontend.