Commit 7276ab934d192627c72720ae1378de93edd9e8c7
1 parent
a1108108
Use -Wold-style-cast for C++ if supported
Also separate C and C++ warning flags.
Showing
3 changed files
with
20 additions
and
2 deletions
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) \ |