any internal cpp flag to signify that -pedantic is being used, as it
does for -ansi (__STRICT_ANSI__).
+Note that the -ansi and -pedantic are enabled only for version 3 (and
+later) of gcc, since even gcc version 2.95.4 finds lots of seemingly
+false "value computed not used" errors from Perl.
+
The -ansi and -pedantic are useful in catching at least the following
nonportable practices:
esac
case "$gccansipedantic" in
define)
- case "$osname" in
- # Add -ansi -pedantic only for known platforms.
- aix|dec_osf|freebsd|hpux|irix|linux)
- ansipedantic="-ansi -pedantic" ;;
- solaris)
+ case "$gccversion" in
+ [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
+ *) case "$osname" in
+ # Add -ansi -pedantic only for known platforms.
+ aix|dec_osf|freebsd|hpux|irix|linux)
+ ansipedantic="-ansi -pedantic" ;;
+ solaris)
# Can't add -ansi for Solaris.
# Off_t/off_t is a struct in Solaris with largefiles, and with -ansi
# that struct cannot be compared with a flat integer, such as a STRLEN.
# The -ansi will also cause a lot of noise in Solaris because of:
# /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list
- ansipedantic="-pedantic" ;;
- esac
- for i in $ansipedantic
- do
- case "$ccflags" in
- *$i*) ;;
- *) warn="$warn $i" ;;
+ ansipedantic="-pedantic" ;;
+ esac
+ for i in $ansipedantic
+ do
+ case "$ccflags" in
+ *$i*) ;;
+ *) warn="$warn $i" ;;
+ esac
+ done
+ case "$warn$ccflags" in
+ *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
esac
- done
- case "$warn$ccflags" in
- *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
- esac
- ;;
+ ;;
+ esac
+ ;;
esac
;;
esac