[Bug c++/55742] [4.8 regression] __attribute__ in class function declaration cause "prototype does not match" errors.

xinliangli at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jan 17 22:45:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55742

--- Comment #30 from davidxl <xinliangli at gmail dot com> 2013-01-17 22:45:22 UTC ---
(In reply to comment #26)
> On Wed, Jan 16, 2013 at 5:02 PM, jakub at gcc dot gnu.org
> <gcc-bugzilla@gcc.gnu.org> wrote:
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55742
> >
> > --- Comment #25 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-16 16:02:35 UTC ---
> > The actual merging of target attribute isn't that important, what would be more
> > important is that other attributes are merged together in that case and the
> > decls treated as the same thing.
> >
> > Anyway, with target("any") attribute, what would happen for
> > void foo () __attribute__((target ("avx")));
> > void foo () __attribute__((target ("any")));
> 
> IMHO the re-declaration with a different target attribute should be an error.

This can be a clean way to handle declarations. The definition should have
either 'default' attribute or a matching target attribute.

> A proper "forward" declaration for a function with MV applied shouldn't have
> any target attribute.

What does this sentence mean?


David



More information about the Gcc-bugs mailing list