Commit 7276ab934d192627c72720ae1378de93edd9e8c7

Authored by Jay Berkenbilt
1 parent a1108108

Use -Wold-style-cast for C++ if supported

Also separate C and C++ warning flags.
autoconf.mk.in
@@ -13,12 +13,13 @@ htmldir=@htmldir@ @@ -13,12 +13,13 @@ htmldir=@htmldir@
13 pdfdir=@pdfdir 13 pdfdir=@pdfdir
14 CC=@CC@ 14 CC=@CC@
15 WFLAGS=@WFLAGS@ 15 WFLAGS=@WFLAGS@
  16 +CXXWFLAGS=@CXXWFLAGS@
16 CFLAGS=@CFLAGS@ $(WFLAGS) 17 CFLAGS=@CFLAGS@ $(WFLAGS)
17 LDFLAGS=@LDFLAGS@ 18 LDFLAGS=@LDFLAGS@
18 LIBS=@LIBS@ 19 LIBS=@LIBS@
19 CPPFLAGS=@CPPFLAGS@ 20 CPPFLAGS=@CPPFLAGS@
20 CXX=@CXX@ 21 CXX=@CXX@
21 -CXXFLAGS=@CXXFLAGS@ $(WFLAGS) 22 +CXXFLAGS=@CXXFLAGS@ $(CXXWFLAGS) $(WFLAGS)
22 AR=@AR@ 23 AR=@AR@
23 RANLIB=@RANLIB@ 24 RANLIB=@RANLIB@
24 DLLTOOL=@DLLTOOL@ 25 DLLTOOL=@DLLTOOL@
configure.ac
@@ -176,6 +176,7 @@ AC_ARG_WITH(buildrules, @@ -176,6 +176,7 @@ AC_ARG_WITH(buildrules,
176 AC_MSG_RESULT($BUILDRULES) 176 AC_MSG_RESULT($BUILDRULES)
177 177
178 AC_SUBST(WFLAGS) 178 AC_SUBST(WFLAGS)
  179 +AC_SUBST(CXXWFLAGS)
179 qpdf_USE_EXTRA_WARNINGS=0 180 qpdf_USE_EXTRA_WARNINGS=0
180 if test "$BUILDRULES" = "msvc"; then 181 if test "$BUILDRULES" = "msvc"; then
181 dnl /w14267 makes warning 4267 a level 1 warning. This warning reports 182 dnl /w14267 makes warning 4267 a level 1 warning. This warning reports
@@ -197,6 +198,22 @@ if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then @@ -197,6 +198,22 @@ if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then
197 else 198 else
198 AC_MSG_RESULT(no) 199 AC_MSG_RESULT(no)
199 fi 200 fi
  201 +if test "$BUILDRULES" != "msvc"; then
  202 + qpdf_USE_EXTRA_WARNINGS=0
  203 + try_flags="-Wold-style-cast"
  204 + AC_MSG_CHECKING(for whether $CXX supports $try_flags)
  205 + oCXXFLAGS=$CXXFLAGS
  206 + CXXFLAGS="$CXXFLAGS $try_flags"
  207 + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])],
  208 + [qpdf_USE_EXTRA_WARNINGS=1],[qpdf_USE_EXTRA_WARNINGS=0])
  209 + CXXFLAGS=$oCXXFLAGS
  210 + if test "$qpdf_USE_EXTRA_WARNINGS" = "1"; then
  211 + AC_MSG_RESULT(yes)
  212 + CXXWFLAGS="$try_flags"
  213 + else
  214 + AC_MSG_RESULT(no)
  215 + fi
  216 +fi
200 217
201 if test "$BUILDRULES" = "msvc"; then 218 if test "$BUILDRULES" = "msvc"; then
202 try_flags="/WX" 219 try_flags="/WX"
make/libtool.mk
@@ -73,7 +73,7 @@ endef @@ -73,7 +73,7 @@ endef
73 # Usage: $(call libcompile,src,includes) 73 # Usage: $(call libcompile,src,includes)
74 define c_libcompile 74 define c_libcompile
75 $(LIBTOOL) --quiet --mode=compile \ 75 $(LIBTOOL) --quiet --mode=compile \
76 - $(CC) $(CXXFLAGS) \ 76 + $(CC) $(CFLAGS) \
77 $(call libdepflags,$(basename $(call c_src_to_obj,$(1)))) \ 77 $(call libdepflags,$(basename $(call c_src_to_obj,$(1)))) \
78 $(foreach I,$(2),-I$(I)) \ 78 $(foreach I,$(2),-I$(I)) \
79 $(CPPFLAGS) \ 79 $(CPPFLAGS) \