------- Comment #3 from tbm at cyrius dot com  2006-06-04 10:24 -------
I don't know why Perl uses it, I simply noticed that lots of packages in Debian
now fail to build because its part of a Perl header... they do this:

extern "C" SV* Perl_Gsv_placeholder_ptr(register PerlInterpreter *my_perl
__attribute__((unused)));

In an IRC discussion whether this is valid, the following comments were made:

18:11 < Womble2> "a linkage-specification directly containing a single
declaration shall not specify a storage class"  (7.5/8)
18:12 < Womble2> but I think it really means at the top-level of the
declaration
18:12 < pinskia> Womble2: I think that means extern "C" static int t; is
invalid
18:12 < Womble2> yes the example it gives has a function declared a static
18:13 < pinskia> but register allows to the argument and not to the declaration
18:13 < pinskia> s/allows/applies/
18:14 < Womble2> indeed, though the statement could be (rather perversely) read
as disallow specification of a storage class anywhere in the declaration, as
the person who made the change may have done
[Womble2 = Ben Hutchings, pinskia = Andrew Pinski]

Do you disagree with that interpretation?


-- 


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

Reply via email to