[perl #112786] Fix build under clang++
authorCraig A. Berry <craigberry@mac.com>
Thu, 24 May 2012 07:54:57 +0000 (00:54 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 24 May 2012 07:57:19 +0000 (00:57 -0700)
commitef5eb418bf9cb919bb2d82393f4570a790061e2e
tree138323dbb9acd9440bf096c6c65a71c4f1bb6514
parent9aa9a8882056ff874c474002548b48c19610592f
[perl #112786] Fix build under clang++

A line of code in sv.c last modified at
<http://perl5.git.perl.org/perl.git/commit/c6fb3f6e3e5160581b7?f=sv.c>
causes clang++ to fall down hard when building blead:

sv.c:13969:32: error: unexpected ':' in nested name specifier
        CV * const cv = gv ? (CV *)gv : find_runcv(NULL);
                                      ^
                                      ::
sv.c:13969:34: error: no member named 'Perl_find_runcv' in 'gv'
        CV * const cv = gv ? (CV *)gv : find_runcv(NULL);
                                   ~~~~ ^
./embed.h:137:24: note: expanded from macro 'find_runcv'
#define find_runcv(a)           Perl_find_runcv(aTHX_ a)
                                ^
sv.c:13969:50: error: expected ':'
        CV * const cv = gv ? (CV *)gv : find_runcv(NULL);
                                                        ^
                                                        :
sv.c:13969:21: note: to match this '?'
        CV * const cv = gv ? (CV *)gv : find_runcv(NULL);
                           ^
sv.c:13969:50: error: expected expression
        CV * const cv = gv ? (CV *)gv : find_runcv(NULL);
                                                        ^
14 warnings and 4 errors generated.
make: *** [sv.o] Error 1

clang++ seems to need only an extra set of parentheses to calm down
and let go of its anxieties.

[Committer’s note: Leon Timmermans points out that it's struct gv
that's confusing clang++.  So a struct name used as a variable cannot
be followed by a colon.]
sv.c