[Bug c/94106] New: error on a function redeclaration with attribute transaction_safe
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 9 18:57:26 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94106
Bug ID: 94106
Summary: error on a function redeclaration with attribute
transaction_safe
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
Of the six declarations below each is accepted on its own. The latter two
redeclarations are accepted as well, but the first redeclaration is rejected
with an error. I can't find documentation of the attributes in the manual so
it's not entirely clear to me whether the error is a bug or whether its absence
on the other two redeclarations is a bug, or whether this works as intended,
but intuitively I would expect all three to accepted as happens with other
attributes.
$ cat z.c && gcc -Wall -Wextra -S -Wall z.c
void f0 (void);
__attribute__ ((transaction_safe)) void f0 (void); // (bogus?) error
void f1 (void);
__attribute__ ((transaction_unsafe)) void f1 (void); // accepted
void f2 (void);
__attribute__ ((transaction_callable)) void f2 (void); // accepted
z.c:2:41: error: conflicting types for ‘f0’
2 | __attribute__ ((transaction_safe)) void f0 (void); // (bogus?)
error
| ^~
z.c:1:41: note: previous declaration of ‘f0’ was here
1 | void f0 (void);
| ^~
More information about the Gcc-bugs
mailing list