Re: [PATCH] qt: Suppress warnings in qt backend build
Bryce Harrington <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Sep 05, 2014 at 12:15:02PM +0530, Ravi Nanjundappa wrote: > This patch fixes majorly 2 kinds of warning issues: > > (1) > cc1plus: warning: command line option '-Wold-style-definition' is valid for Ada/C/ObjC but not for C++ [enabled by default] > cc1plus: warning: command line option '-Wdeclaration-after-statement' is valid for C/ObjC but not for C++ [enabled by default] > cc1plus: warning: command line option '-Wnested-externs' is valid for C/ObjC but not for C++ [enabled by default] > cc1plus: warning: command line option '-Wstrict-prototypes' is valid for Ada/C/ObjC but not for C++ [enabled by default] > cc1plus: warning: command line option '-Wmissing-prototypes' is valid for Ada/C/ObjC but not for C++ [enabled by default] > cc1plus: warning: command line option '-Wbad-function-cast' is valid for C/ObjC but not for C++ [enabled by default] > > Solution: Enable these warnings only for C compiler and not for C++ > > (2) > cairo-qt-surface.cpp: In function 'cairo_int_status_t _cairo_qt_surface_fill(void*, cairo_operator_t, const cairo_pattern_t*, const cairo_path_fixed_t*, cairo_fill_rule_t, double, cairo_antialias_t, const cairo_clip_t*)': > cairo-qt-surface.cpp:852:5: warning: inlining failed in call to 'PatternToBrushConverter::PatternToBrushConverter(const cairo_pattern_t*)': --param max-inline-insns-single limit reached [-Winline] > cairo-qt-surface.cpp:1339:38: warning: called from here [-Winline] > cairo-qt-surface.cpp:390:1: warning: inlining failed in call to 'QPainterPath _ZL10path_to_qtPK17_cairo_path_fixedPK13_cairo_matrix.part.13()': call is unlikely and code size would grow [-Winline] > cairo-qt-surface.cpp:1306:1: warning: called from here [-Winline] > cairo-qt-surface.cpp:1051:5: warning: inlining failed in call to 'PatternToBrushConverter::~PatternToBrushConverter()': call is unlikely and code size would grow [-Winline] > > Solution: Add __attribute__ ((noinline)) to the function as mentioned in > http://stackoverflow.com/questions/11724235/warning-for-template-with-g-o2-or-os-o-o1 (Edit 3) > > Signed-off-by: Ravi Nanjundappa <[email protected]> Reviewed-by: Bryce Harrington <[email protected]> Thanks, merged after fixing a couple minor ws issues. $ git am ../cairo_PATCH_qt_Suppress_warnings_in_qt_backend_build.mbox Applying: qt: Suppress warnings in qt backend build /home/bryce/src/Cairo/cairo/.git/rebase-apply/patch:20: trailing whitespace. -Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked /home/bryce/src/Cairo/cairo/.git/rebase-apply/patch:69: trailing whitespace. PatternToBrushConverter (const cairo_pattern_t *pattern) warning: 2 lines add whitespace errors. > --- > build/configure.ac.warnings | 13 +++++++------ > src/cairo-qt-surface.cpp | 9 ++++++--- > 2 files changed, 13 insertions(+), 9 deletions(-) > > diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings > index 2c4e34d..8aeae3b 100644 > --- a/build/configure.ac.warnings > +++ b/build/configure.ac.warnings > @@ -11,16 +11,17 @@ dnl MAYBE_WARN in an ignorable way (like adding whitespace) > # -Wlogical-op causes too much noise from strcmp("literal", str) > > MAYBE_WARN="-Wall -Wextra \ > --Wold-style-definition -Wdeclaration-after-statement \ > -Wmissing-declarations -Werror-implicit-function-declaration \ > --Wnested-externs -Wpointer-arith -Wwrite-strings \ > --Wsign-compare -Wstrict-prototypes -Wmissing-prototypes \ > --Wpacked -Wswitch-enum -Wmissing-format-attribute \ > --Wbad-function-cast -Wvolatile-register-var \ > +-Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked > +-Wswitch-enum -Wmissing-format-attribute -Wvolatile-register-var \ > -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ > -Wno-missing-field-initializers -Wno-unused-parameter \ > -Wno-attributes -Wno-long-long -Winline" > > +MAYBE_C_SPECIFIC_WARN="-Wold-style-definition \ > +-Wdeclaration-after-statement -Wstrict-prototypes \ > +-Wmissing-prototypes -Wbad-function-cast -Wnested-externs" > + > # New -Wno options should be added here > # gcc-4.4 and later accept every -Wno- option but may complain later that this > # option is unknow each time another warning happen. > @@ -66,7 +67,7 @@ AC_CACHE_CHECK([for supported warning flags], cairo_cv_warn_cflags, [ > CAIRO_CC_TRY_FLAG([-W$W -Wno-$W],, [WARN_CFLAGS="$WARN_CFLAGS -Wno-$W"]) > done > cairo_cv_warn_cflags=$WARN_CFLAGS > - cairo_cv_warn_maybe=$MAYBE_WARN > + cairo_cv_warn_maybe="$MAYBE_WARN $MAYBE_C_SPECIFIC_WARN" > > AC_MSG_CHECKING([which warning flags were supported]) > ]) > diff --git a/src/cairo-qt-surface.cpp b/src/cairo-qt-surface.cpp > index ce05dba..3034e56 100644 > --- a/src/cairo-qt-surface.cpp > +++ b/src/cairo-qt-surface.cpp > @@ -306,6 +306,8 @@ _qimage_format_from_cairo_format (cairo_format_t fmt) > #else > return QImage::Format_MonoLSB; > #endif > + case CAIRO_FORMAT_RGB30: > + return QImage::Format_Mono; > } > > return QImage::Format_Mono; > @@ -386,7 +388,7 @@ _cairo_path_to_qpainterpath_close_path (void *closure) > return CAIRO_STATUS_SUCCESS; > } > > -static inline QPainterPath > +static QPainterPath > path_to_qt (const cairo_path_fixed_t *path, > const cairo_matrix_t *ctm_inverse = NULL) > { > @@ -849,7 +851,8 @@ _cairo_qt_surface_set_clip (cairo_qt_surface_t *qs, > */ > > struct PatternToBrushConverter { > - PatternToBrushConverter (const cairo_pattern_t *pattern) : > + PatternToBrushConverter (const cairo_pattern_t *pattern) > + __attribute__ ((noinline)) : > mAcquiredImageParent(0), > mAcquiredImage(0), > mAcquiredImageExtra(0) > @@ -1048,7 +1051,7 @@ struct PatternToBrushConverter { > } > } > > - ~PatternToBrushConverter () { > + ~PatternToBrushConverter () __attribute__ ((noinline)){ > if (mAcquiredImageParent) > _cairo_surface_release_source_image (mAcquiredImageParent, mAcquiredImage, mAcquiredImageExtra); > } > -- > 1.7.9.5 > > -- > cairo mailing list > [email protected] > http://lists.cairographics.org/mailman/listinfo/cairo -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo