------- 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