author | Nicholas Nethercote <nnethercote@mozilla.com> |
Wed, 28 Dec 2011 19:59:19 -0800 | |
changeset 83481 | 54bf8b9d80bedd998eb9e8c5413c3079c1204a6c |
parent 83480 | f730d670f5c4757f0762f21e1a8840f56f4ea25b |
child 83482 | fff9a6ac640a251fbe8e9f5e2c71759bc1a7deaf |
child 83502 | 6d443ec0dda17a11bf2330d078f55b45fc399249 |
push id | 21762 |
push user | mak77@bonardo.net |
push date | Thu, 29 Dec 2011 11:02:39 +0000 |
treeherder | mozilla-central@fff9a6ac640a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | waldo, derf |
bugs | 711895 |
milestone | 12.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/configure.in +++ b/configure.in @@ -1859,46 +1859,65 @@ if test "$GNU_CC"; then fi WARNINGS_AS_ERRORS='-Werror' DSO_CFLAGS='' DSO_PIC_CFLAGS='-fPIC' ASFLAGS="$ASFLAGS -fPIC" _MOZ_RTTI_FLAGS_ON=-frtti _MOZ_RTTI_FLAGS_OFF=-fno-rtti - # Turn on GNU specific features - # -Wall - turn on all warnings - # -pedantic - make compiler warn about non-ANSI stuff, and - # be a little bit stricter - # -Wdeclaration-after-statement - MSVC doesn't like these - # Warnings slamm took out for now (these were giving more noise than help): - # -Wbad-function-cast - warns when casting a function to a new return type - # -Wshadow - removed because it generates more noise than help --pete - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith -Wdeclaration-after-statement" + # Turn on GNU-specific warnings: + # -Wall - turn on a lot of warnings + # -pedantic - this is turned on below + # -Wpointer-arith - enabled with -pedantic, but good to have even if not + # -Werror=declaration-after-statement - MSVC doesn't like these + # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives + # + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement -Wempty-body" + + # Turn off the following warnings that -Wall/-pedantic turn on: + # -Woverlength-strings - we exceed the minimum maximum length all the time + # + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-overlength-strings" + if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" ;; esac fi dnl Turn pedantic on but disable the warnings for long long _PEDANTIC=1 - if test -z "$INTEL_CC"; then - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W" - fi - _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT' _USE_CPP_INCLUDE_FLAG=1 + + AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, + ac_cc_has_wtype_limits, + [ + AC_LANG_SAVE + AC_LANG_C + _SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wtype-limits" + AC_TRY_COMPILE([], + [return(0);], + ac_cc_has_wtype_limits="yes", + ac_cc_has_wtype_limits="no") + CFLAGS="$_SAVE_CFLAGS" + AC_LANG_RESTORE + ]) + if test "$ac_cc_has_wtype_limits" = "yes"; then + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wtype-limits" + fi elif test "$SOLARIS_SUNPRO_CC"; then DSO_CFLAGS='' if test "$CPU_ARCH" = "sparc"; then # for Sun Studio on Solaris/SPARC DSO_PIC_CFLAGS='-xcode=pic32' else DSO_PIC_CFLAGS='-KPIC' fi @@ -1916,18 +1935,32 @@ else DSO_CFLAGS='' DSO_PIC_CFLAGS='-KPIC' _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT' fi if test "$GNU_CXX"; then # FIXME: Let us build with strict aliasing. bug 414641. CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing" - # Turn on GNU specific features - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" + + # Turn on GNU-specific warnings: + # -Wall - turn on a lot of warnings + # -pedantic - this is turned on below + # -Wpointer-arith - enabled with -pedantic, but good to have even if not + # -Woverloaded-virtual - ??? + # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives + # + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wempty-body" + + # Turn off the following warnings that -Wall/-pedantic turn on: + # -Woverlength-strings - we exceed the minimum maximum length all the time + # -Wctor-dtor-privacy - ??? + # + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-overlength-strings -Wno-ctor-dtor-privacy" + if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" @@ -2018,16 +2051,34 @@ if test "$GNU_CXX"; then ac_has_werror_return_type="no") CXXFLAGS="$_SAVE_CXXFLAGS" AC_LANG_RESTORE ]) if test "$ac_has_werror_return_type" = "yes"; then _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type" fi + AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, + ac_has_wtype_limits, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + _SAVE_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wtype-limits" + AC_TRY_COMPILE([], + [return(0);], + ac_has_wtype_limits="yes", + ac_has_wtype_limits="no") + CXXFLAGS="$_SAVE_CXXFLAGS" + AC_LANG_RESTORE + ]) + if test "$ac_has_wtype_limits" = "yes"; then + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wtype-limits" + fi + else _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)' fi dnl gcc can come with its own linker so it is better to use the pass-thru calls dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to dnl normal behavior.
--- a/content/xslt/src/base/txExpandedNameMap.h +++ b/content/xslt/src/base/txExpandedNameMap.h @@ -97,28 +97,26 @@ protected: bool next() { return ++mCurrentPos < mMap.mItems.Length(); } const txExpandedName key() { - NS_ASSERTION(mCurrentPos >= 0 && - mCurrentPos < mMap.mItems.Length(), + NS_ASSERTION(mCurrentPos < mMap.mItems.Length(), "invalid position in txExpandedNameMap::iterator"); return txExpandedName(mMap.mItems[mCurrentPos].mNamespaceID, mMap.mItems[mCurrentPos].mLocalName); } protected: void* itemValue() { - NS_ASSERTION(mCurrentPos >= 0 && - mCurrentPos < mMap.mItems.Length(), + NS_ASSERTION(mCurrentPos < mMap.mItems.Length(), "invalid position in txExpandedNameMap::iterator"); return mMap.mItems[mCurrentPos].mValue; } private: txExpandedNameMap_base& mMap; PRUint32 mCurrentPos; };
new file mode 100644 --- /dev/null +++ b/gfx/ycbcr/QuellGccWarnings.patch @@ -0,0 +1,40 @@ +diff --git a/gfx/ycbcr/yuv_convert.cpp b/gfx/ycbcr/yuv_convert.cpp +--- a/gfx/ycbcr/yuv_convert.cpp ++++ b/gfx/ycbcr/yuv_convert.cpp +@@ -337,16 +337,17 @@ NS_GFX_(void) ScaleYCbCrToRGB32(const ui + source_dx_uv >> kFractionBits); + } + } + else { + ScaleYUVToRGB32Row_C(y_ptr, u_ptr, v_ptr, + dest_pixel, width, source_dx); + } + #else ++ (void)source_dx_uv; + ScaleYUVToRGB32Row(y_ptr, u_ptr, v_ptr, + dest_pixel, width, source_dx); + #endif + } + } + // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms. + if (has_mmx) + EMMS(); +diff --git a/gfx/ycbcr/yuv_row.h b/gfx/ycbcr/yuv_row.h +--- a/gfx/ycbcr/yuv_row.h ++++ b/gfx/ycbcr/yuv_row.h +@@ -129,14 +129,14 @@ extern SIMD_ALIGNED(int16 kCoefficientsR + #if defined(ARCH_CPU_X86) && !defined(ARCH_CPU_X86_64) + #if defined(_MSC_VER) + #define EMMS() __asm emms + #pragma warning(disable: 4799) + #else + #define EMMS() asm("emms") + #endif + #else +-#define EMMS() ++#define EMMS() ((void)0) + #endif + + } // extern "C" + + #endif // MEDIA_BASE_YUV_ROW_H_
--- a/gfx/ycbcr/README +++ b/gfx/ycbcr/README @@ -20,8 +20,10 @@ convert.patch contains the following cha * Add YCbCr 4:4:4 support * Bug 619178 - Update CPU detection in yuv_convert to new SSE.h interface. * Bug 616778 - Split yuv_convert FilterRows vectorized code into separate files so it can be properly guarded with cpuid() calls. win64.patch: SSE2 optimization for Microsoft Visual C++ x64 version TypeFromSize.patch: Bug 656185 - Add a method to detect YUVType from plane sizes. + +QuellGccWarnings.patch: Bug 711895 - Avoid some GCC compilation warnings.
--- a/gfx/ycbcr/update.sh +++ b/gfx/ycbcr/update.sh @@ -4,8 +4,9 @@ cp $1/media/base/yuv_convert.cc yuv_conv cp $1/media/base/yuv_row.h . cp $1/media/base/yuv_row_table.cc yuv_row_table.cpp cp $1/media/base/yuv_row_posix.cc yuv_row_posix.cpp cp $1/media/base/yuv_row_win.cc yuv_row_win.cpp cp $1/media/base/yuv_row_posix.cc yuv_row_c.cpp patch -p3 <convert.patch patch -p3 <win64.patch patch -p3 <TypeFromSize.patch +patch -p3 <QuellGccWarnings.patch
--- a/gfx/ycbcr/yuv_convert.cpp +++ b/gfx/ycbcr/yuv_convert.cpp @@ -337,16 +337,17 @@ NS_GFX_(void) ScaleYCbCrToRGB32(const ui source_dx_uv >> kFractionBits); } } else { ScaleYUVToRGB32Row_C(y_ptr, u_ptr, v_ptr, dest_pixel, width, source_dx); } #else + (void)source_dx_uv; ScaleYUVToRGB32Row(y_ptr, u_ptr, v_ptr, dest_pixel, width, source_dx); #endif } } // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms. if (has_mmx) EMMS();
--- a/gfx/ycbcr/yuv_row.h +++ b/gfx/ycbcr/yuv_row.h @@ -129,14 +129,14 @@ extern SIMD_ALIGNED(int16 kCoefficientsR #if defined(ARCH_CPU_X86) && !defined(ARCH_CPU_X86_64) #if defined(_MSC_VER) #define EMMS() __asm emms #pragma warning(disable: 4799) #else #define EMMS() asm("emms") #endif #else -#define EMMS() +#define EMMS() ((void)0) #endif } // extern "C" #endif // MEDIA_BASE_YUV_ROW_H_
--- a/js/src/configure.in +++ b/js/src/configure.in @@ -1801,45 +1801,65 @@ if test "$GNU_CC"; then fi WARNINGS_AS_ERRORS='-Werror' DSO_CFLAGS='' DSO_PIC_CFLAGS='-fPIC' ASFLAGS="$ASFLAGS -fPIC" _MOZ_RTTI_FLAGS_ON=-frtti _MOZ_RTTI_FLAGS_OFF=-fno-rtti - # Turn on GNU specific features - # -Wall - turn on all warnings - # -pedantic - make compiler warn about non-ANSI stuff, and - # be a little bit stricter - # Warnings slamm took out for now (these were giving more noise than help): - # -Wbad-function-cast - warns when casting a function to a new return type - # -Wshadow - removed because it generates more noise than help --pete - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith" + # Turn on GNU-specific warnings: + # -Wall - turn on a lot of warnings + # -pedantic - this is turned on below + # -Wpointer-arith - enabled with -pedantic, but good to have even if not + # -Wdeclaration-after-statement - MSVC doesn't like these + # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives + # + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement -Wempty-body" + + # Turn off the following warnings that -Wall/-pedantic turn on: + # -Woverlength-strings - we exceed the minimum maximum length all the time + # + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-overlength-strings" + if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" ;; esac fi dnl Turn pedantic on but disable the warnings for long long _PEDANTIC=1 - if test -z "$INTEL_CC"; then - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W" - fi - _DEFINES_CFLAGS='-include $(DEPTH)/js-confdefs.h -DMOZILLA_CLIENT' _USE_CPP_INCLUDE_FLAG=1 + + AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, + ac_cc_has_wtype_limits, + [ + AC_LANG_SAVE + AC_LANG_C + _SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wtype-limits" + AC_TRY_COMPILE([], + [return(0);], + ac_cc_has_wtype_limits="yes", + ac_cc_has_wtype_limits="no") + CFLAGS="$_SAVE_CFLAGS" + AC_LANG_RESTORE + ]) + if test "$ac_cc_has_wtype_limits" = "yes"; then + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wtype-limits" + fi elif test "$SOLARIS_SUNPRO_CC"; then DSO_CFLAGS='' if test "$CPU_ARCH" = "sparc"; then # for Sun Studio on Solaris/SPARC DSO_PIC_CFLAGS='-xcode=pic32' else DSO_PIC_CFLAGS='-KPIC' fi @@ -1855,18 +1875,31 @@ else fi DSO_CFLAGS='' DSO_PIC_CFLAGS='-KPIC' _DEFINES_CFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT' fi if test "$GNU_CXX"; then - # Turn on GNU specific features - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" + # Turn on GNU-specific warnings: + # -Wall - turn on a lot of warnings + # -pedantic - this is turned on below + # -Wpointer-arith - enabled with -pedantic, but good to have even if not + # -Woverloaded-virtual - ??? + # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives + # + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wempty-body" + + # Turn off the following warnings that -Wall/-pedantic turn on: + # -Woverlength-strings - we exceed the minimum maximum length all the time + # -Wctor-dtor-privacy - ??? + # + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-overlength-strings -Wno-ctor-dtor-privacy" + if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" @@ -1957,16 +1990,34 @@ if test "$GNU_CXX"; then ac_has_werror_return_type="no") CXXFLAGS="$_SAVE_CXXFLAGS" AC_LANG_RESTORE ]) if test "$ac_has_werror_return_type" = "yes"; then _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type" fi + AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, + ac_has_wtype_limits, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + _SAVE_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -Wtype-limits" + AC_TRY_COMPILE([], + [return(0);], + ac_has_wtype_limits="yes", + ac_has_wtype_limits="no") + CXXFLAGS="$_SAVE_CXXFLAGS" + AC_LANG_RESTORE + ]) + if test "$ac_has_wtype_limits" = "yes"; then + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wtype-limits" + fi + else _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_JS_CONFDEFS_H_ $(ACDEFINES)' fi dnl gcc can come with its own linker so it is better to use the pass-thru calls dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to dnl normal behavior.
--- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -400,20 +400,33 @@ DoGetElement(JSContext *cx, JSObject *ob *hole = !present; if (*hole) vp->setUndefined(); return true; } template<typename IndexType> +static void +AssertGreaterThanZero(IndexType index) +{ + JS_ASSERT(index >= 0); +} + +template<> +void +AssertGreaterThanZero(jsuint index) +{ +} + +template<typename IndexType> static JSBool GetElement(JSContext *cx, JSObject *obj, IndexType index, JSBool *hole, Value *vp) { - JS_ASSERT(index >= 0); + AssertGreaterThanZero(index); if (obj->isDenseArray() && index < obj->getDenseArrayInitializedLength() && !(*vp = obj->getDenseArrayElement(uint32_t(index))).isMagic(JS_ARRAY_HOLE)) { *hole = JS_FALSE; return JS_TRUE; } if (obj->isArguments()) { if (obj->asArguments()->getElement(uint32_t(index), vp)) { *hole = JS_FALSE;
--- a/js/src/jsgc.cpp +++ b/js/src/jsgc.cpp @@ -1337,17 +1337,17 @@ JSRuntime::setGCLastBytes(size_t lastByt size_t base = gckind == GC_SHRINK ? lastBytes : Max(lastBytes, GC_ALLOCATION_THRESHOLD); float trigger = float(base) * GC_HEAP_GROWTH_FACTOR; gcTriggerBytes = size_t(Min(float(gcMaxBytes), trigger)); } void JSRuntime::reduceGCTriggerBytes(uint32_t amount) { JS_ASSERT(amount > 0); - JS_ASSERT(gcTriggerBytes - amount >= 0); + JS_ASSERT(gcTriggerBytes >= amount); if (gcTriggerBytes - amount < GC_ALLOCATION_THRESHOLD * GC_HEAP_GROWTH_FACTOR) return; gcTriggerBytes -= amount; } void JSCompartment::setGCLastBytes(size_t lastBytes, JSGCInvocationKind gckind) { @@ -1356,17 +1356,17 @@ JSCompartment::setGCLastBytes(size_t las size_t base = gckind == GC_SHRINK ? lastBytes : Max(lastBytes, GC_ALLOCATION_THRESHOLD); float trigger = float(base) * GC_HEAP_GROWTH_FACTOR; gcTriggerBytes = size_t(Min(float(rt->gcMaxBytes), trigger)); } void JSCompartment::reduceGCTriggerBytes(uint32_t amount) { JS_ASSERT(amount > 0); - JS_ASSERT(gcTriggerBytes - amount >= 0); + JS_ASSERT(gcTriggerBytes >= amount); if (gcTriggerBytes - amount < GC_ALLOCATION_THRESHOLD * GC_HEAP_GROWTH_FACTOR) return; gcTriggerBytes -= amount; } namespace js { namespace gc {
--- a/js/src/jstypedarray.cpp +++ b/js/src/jstypedarray.cpp @@ -1682,19 +1682,17 @@ class TypedArrayTemplate static void copyIndexToValue(JSContext *cx, JSObject *tarray, uint32_t index, Value *vp); static JSObject * createSubarray(JSContext *cx, JSObject *tarray, uint32_t begin, uint32_t end) { JS_ASSERT(tarray); - JS_ASSERT(0 <= begin); JS_ASSERT(begin <= getLength(tarray)); - JS_ASSERT(0 <= end); JS_ASSERT(end <= getLength(tarray)); JSObject *bufobj = getBuffer(tarray); JS_ASSERT(bufobj); JS_ASSERT(begin <= end); uint32_t length = end - begin;
--- a/layout/generic/nsHTMLReflowMetrics.h +++ b/layout/generic/nsHTMLReflowMetrics.h @@ -66,21 +66,21 @@ enum nsOverflowType { eVisualOverflow, e for (nsOverflowType var_ = nsOverflowType(0); var_ < 2; \ var_ = nsOverflowType(var_ + 1)) struct nsOverflowAreas { private: nsRect mRects[2]; public: nsRect& Overflow(size_t aIndex) { - NS_ASSERTION(0 <= aIndex && aIndex < 2, "index out of range"); + NS_ASSERTION(aIndex < 2, "index out of range"); return mRects[aIndex]; } const nsRect& Overflow(size_t aIndex) const { - NS_ASSERTION(0 <= aIndex && aIndex < 2, "index out of range"); + NS_ASSERTION(aIndex < 2, "index out of range"); return mRects[aIndex]; } nsRect& VisualOverflow() { return mRects[eVisualOverflow]; } const nsRect& VisualOverflow() const { return mRects[eVisualOverflow]; } nsRect& ScrollableOverflow() { return mRects[eScrollableOverflow]; } const nsRect& ScrollableOverflow() const { return mRects[eScrollableOverflow]; }