Merge ihse-cflags-rewrite-branch
authorihse
Tue, 22 Oct 2019 08:51:18 +0200
branchihse-cflags-rewrite-branch
changeset 58734 c4be316c3df4
parent 58733 fd8dc801ef32 (diff)
parent 58732 d2da05214592 (current diff)
child 58736 e878a0b7cff0
Merge
src/hotspot/share/prims/jvm.cpp
test/jdk/java/math/BigInteger/DivisionOverflow.java
test/jdk/java/math/BigInteger/StringConstructorOverflow.java
test/jdk/java/math/BigInteger/SymmetricRangeTests.java
--- a/make/autoconf/flags-cflags.m4	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/autoconf/flags-cflags.m4	Tue Oct 22 08:51:18 2019 +0200
@@ -157,39 +157,56 @@
 
   AC_SUBST(WARNINGS_AS_ERRORS)
 
+  LDFLAGS_WARNINGS_ARE_ERRORS=""
   case "${TOOLCHAIN_TYPE}" in
     microsoft)
       DISABLE_WARNING_PREFIX="-wd"
       CFLAGS_WARNINGS_ARE_ERRORS="-WX"
 
+      # 4061
+      #WARNINGS_ENABLE_ALL="-Wall"
       WARNINGS_ENABLE_ALL="-W3"
-      DISABLED_WARNINGS="4800"
+      # W4 and Wall is higher but is too link-like.
+      #WARNINGS_ENABLE_ALL="-W4"
+      # 4061, 4062 = enum not handled
+      # 4130
+      #EVEN_MORE="4054 4055 4057 4100 4127 4131 4132 4152 4201 4204 4206 4210 4232 4244 4255 4263 4264 4295 4302 4306 4311 4324 4366 4388 4512 4548 4555 4574 4800 4986 4987"
+      #INIT_DISABLE=" 4189 4191 4211 4242 4245 4265 4287 4296 4310 4312 4350 4355 4365 4389 4505 4510 4514 4571 4610 4619 4623 4625 4626 4640 4668 4701 4702 4703 4706 4710 4711 4820 4917 4946 $EVEN_MORE"
+      #DISABLED_WARNINGS_WALL="4061 4062 $INIT_DISABLE"
+      RETRY_W4_HOTSPOT="4189 4211 4245 4310 4389 4505 4510 4610 4701 4702 4703 4706"
+      RETRY_W4_JDK="4054 4055 4057 4100 4127 4130 4131 4132 4152 4201 4204 4206 4210 4232 4244 4295 4306 4324 4366 4512 4800"
+      DISABLED_WARNINGS="4456"
+# make sure we get this one:     WARNING_CFLAGS_JVM="-wd4800" (-Wreorder)
+      #was: $RETRY_W4_HOTSPOT $RETRY_W4_JDK 4061 4242 4255 4265 4365 4456 4459 4514 4619 4623 4625 4626 4668 4710 4820 5026 5027 5038 5039 4596 4571 4577 4605 4774"
       ;;
 
     solstudio)
       DISABLE_WARNING_PREFIX="-erroff="
       CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
+      LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
 
-      WARNINGS_ENABLE_ALL_CFLAGS="-v"
-      WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
+      WARNINGS_ENABLE_ALL_CFLAGS="-v -fd -xtransition"
+      WARNINGS_ENABLE_ALL_CXXFLAGS="+w +w2"
 
-      DISABLED_WARNINGS_C=""
-      DISABLED_WARNINGS_CXX=""
+      DISABLED_WARNINGS_C="E_OLD_STYLE_FUNC_DECL E_OLD_STYLE_FUNC_DEF E_SEMANTICS_OF_OP_CHG_IN_ANSI_C E_NO_REPLACEMENT_IN_STRING E_DECLARATION_IN_CODE"
+      DISABLED_WARNINGS_CXX="inllargeuse inllargeint notused wemptydecl notemsource"
+      # helpful quality checks, should not be disabled: inllargeuse inllargeint
       ;;
 
     gcc)
       DISABLE_WARNING_PREFIX="-Wno-"
       CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+      # -Wall -Wextra does not enable all warnings. We add some more that we
+      # consider relevant:
+      # logical-op cannot be used due to https://gcc.gnu.org/bugzilla//show_bug.cgi?id=69602
+      WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wundef -Winit-self -Wpacked -Wdisabled-optimization -Wtrampolines"
+      WARNINGS_ENABLE_ADDITIONAL_CXX="-Wc++0x-compat -Wreorder -Wnoexcept -Woverloaded-virtual -Wdelete-non-virtual-dtor -Wwrite-strings -Wstrict-null-sentinel"
 
-      # Additional warnings that are not activated by -Wall and -Wextra
-      WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
-          -Wunused-function -Wundef -Wunused-value -Wreturn-type \
-          -Wtrampolines"
-      WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
-      WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
-      WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
+      WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
+      WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ADDITIONAL_CXX"
 
-      DISABLED_WARNINGS="unused-parameter unused"
+      DISABLED_WARNINGS_JUST_GET_THIS_PASS="unused-variable unused-function unused-but-set-variable undef unused-value unused-label pointer-arith"
+      DISABLED_WARNINGS="unused-parameter $DISABLED_WARNINGS_JUST_GET_THIS_PASS"
 
       # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
       # CFLAGS since any target specific flags will likely not work with the
@@ -236,6 +253,7 @@
   AC_SUBST(DISABLE_WARNING_PREFIX)
   AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
   AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
+  AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
   AC_SUBST(DISABLED_WARNINGS)
   AC_SUBST(DISABLED_WARNINGS_C)
   AC_SUBST(DISABLED_WARNINGS_CXX)
@@ -258,10 +276,10 @@
       # This is most likely not really correct.
 
       # Add runtime stack smashing and undefined behavior checks.
-      CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
-      CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
+      CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1 -Wstack-protector"
+      CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1 -Wstack-protector"
 
-      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -fstack-protector-all --param ssp-buffer-size=1"
+      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -fstack-protector-all --param ssp-buffer-size=1 -Wstack-protector"
       ;;
     esac
   fi
@@ -608,13 +626,19 @@
   # CFLAGS WARNINGS STUFF
   # Set JVM_CFLAGS warning handling
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
+#    JDK_DISABLED="-Wno-pointer-arith -Wno-undef -Wno-unused-function -Wno-unused-value -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -Wno-unused-label"
+#    JVM_DISABLED="-Wno-unknown-pragmas -Wno-comment -Wno-delete-non-virtual-dtor -Wno-ignored-qualifiers -Wno-parentheses -Wno-reorder -Wno-unused-local-typedefs -Wno-unused-parameter -Wno-unused-variable -Wno-address -Wno-missing-field-initializers -Wno-unused-but-set-variable -Wno-char-subscripts -Wno-array-bounds -Wno-narrowing -Wno-empty-body -Wno-unused-but-set-parameter"
+    WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL $JDK_DISABLED"
     WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
     WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
-    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
+    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ALL_CXXFLAGS $JVM_DISABLED"
 
   elif test "x$TOOLCHAIN_TYPE" = xclang; then
-    WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
-
+    WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function -Wno-deprecated -Wreorder"
+    if test "x$OPENJDK_TARGET_OS" = xlinux; then
+      WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
+      WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
+    fi
   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
     WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
     WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
@@ -622,6 +646,8 @@
 
   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
     WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
+    #WARNING_CFLAGS="-W3"
+    #WARNING_CFLAGS_JDK="-wd4800"
 
   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
     WARNING_CFLAGS=""  # currently left empty
--- a/make/common/NativeCompilation.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/common/NativeCompilation.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -366,7 +366,7 @@
           # on Windows. No need to save exit code from compilation since
           # pipefail is always active on Windows.
 	  $$(call ExecuteWithLog, $$@, \
-	      $$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS)) \
+	      $$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS) 2>&1) \
 	      | $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
 	          -e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
 	  $(ECHO) $$@: \\ > $$($1_DEPS_FILE) ; \
@@ -639,12 +639,16 @@
         $$(DISABLED_WARNINGS) \
         $$(DISABLED_WARNINGS_C) \
         $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
-        $$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
+        $$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)) \
+        $$(DISABLED_WARNINGS) \
+        $$(DISABLED_WARNINGS_C))
     $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
         $$(DISABLED_WARNINGS) \
         $$(DISABLED_WARNINGS_CXX) \
         $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
-        $$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)))
+        $$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)) \
+        $$(DISABLED_WARNINGS) \
+        $$(DISABLED_WARNINGS_CXX))
   endif
 
   # Check if warnings should be considered errors.
--- a/make/hotspot/gensrc/GensrcAdlc.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/hotspot/gensrc/GensrcAdlc.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -75,7 +75,6 @@
       OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc, \
       DEBUG_SYMBOLS := false, \
       DISABLED_WARNINGS_clang := tautological-compare, \
-      DISABLED_WARNINGS_solstudio := notemsource, \
       DEFINE_THIS_FILE := false, \
   ))
 
--- a/make/hotspot/lib/CompileGtest.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/hotspot/lib/CompileGtest.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -79,12 +79,24 @@
     CFLAGS_solaris := -DGTEST_HAS_EXCEPTIONS=0 -library=stlport4, \
     CFLAGS_macosx := -DGTEST_OS_MAC=1, \
     DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \
-        undef, \
+        undef \
+        \
+        suggest-attribute=format unknown-pragmas comment \
+        delete-non-virtual-dtor ignored-qualifiers parentheses reorder \
+        unused-local-typedefs unused-variable address \
+        missing-field-initializers unused-but-set-variable char-subscripts \
+        array-bounds narrowing empty-body unused-but-set-parameter undef \
+        maybe-uninitialized \
+        implicit-fallthrough expansion-to-defined, \
     DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
         undef switch format-nonliteral tautological-undefined-compare \
-        self-assign-overloaded, \
+        self-assign-overloaded \
+        \
+        undef switch format-nonliteral \
+        tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
     DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio) \
         identexpected, \
+    DISABLED_WARNINGS_CXX_microsoft := 4996, \
     LDFLAGS := $(JVM_LDFLAGS), \
     LDFLAGS_solaris := -library=stlport4 $(call SET_SHARED_LIBRARY_ORIGIN), \
     LIBS := $(JVM_LIBS), \
--- a/make/hotspot/lib/CompileJvm.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/hotspot/lib/CompileJvm.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -130,6 +130,10 @@
   JVM_EXCLUDE_PATTERNS += x86_32
 endif
 
+ifneq ($(DEBUG_LEVEL), release)
+  DISABLED_WARNINGS_gcc += extra
+endif
+
 # Inline assembly for solaris
 ifeq ($(call isTargetOs, solaris), true)
   ifeq ($(call isTargetCpu, x86_64), true)
@@ -185,11 +189,27 @@
     CFLAGS := $(JVM_CFLAGS), \
     vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
     arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
-    DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc), \
-    DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
-    DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
+    DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \
+        \
+        suggest-attribute=format unknown-pragmas comment \
+        delete-non-virtual-dtor ignored-qualifiers parentheses reorder \
+        unused-local-typedefs unused-variable address \
+        missing-field-initializers unused-but-set-variable char-subscripts \
+        array-bounds narrowing empty-body unused-but-set-parameter \
+        maybe-uninitialized \
+        implicit-fallthrough expansion-to-defined strict-overflow sequence-point, \
+    DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
+        \
+        tautological-compare, \
+    DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio) \
+        \
+        labelnotused hidef w_novirtualdescr inlafteruse \
+        unknownpragma doubunder w_enumnotused w_toomanyenumnotused \
+        wvarhidenmem wunreachable wnoretvalue, \
     DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
-    DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
+    DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft) \
+        \
+        4459, \
     ASFLAGS := $(JVM_ASFLAGS), \
     LDFLAGS := $(JVM_LDFLAGS), \
     LIBS := $(JVM_LIBS), \
--- a/make/launcher/Launcher-jdk.pack.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/launcher/Launcher-jdk.pack.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -86,7 +86,9 @@
     CFLAGS_linux := -fPIC, \
     CFLAGS_solaris := -KPIC, \
     CFLAGS_macosx := -fPIC, \
+    DISABLED_WARNINGS_gcc := unused-local-typedefs, \
     DISABLED_WARNINGS_clang := format-nonliteral, \
+    DISABLED_WARNINGS_solstudio := wunreachable, \
     LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
     LIBS := $(UNPACKEXE_LIBS) $(LIBCXX), \
--- a/make/lib/Awt2dLibraries.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/lib/Awt2dLibraries.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -229,7 +229,6 @@
         format-nonliteral parentheses unused-value unused-function, \
     DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer \
         sign-compare format-nonliteral, \
-    DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
     DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
     ASFLAGS := $(LIBAWT_ASFLAGS), \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
@@ -339,8 +338,8 @@
             implicit-fallthrough undef unused-function, \
         DISABLED_WARNINGS_clang := parentheses format undef \
             logical-op-parentheses format-nonliteral int-conversion, \
-        DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
-            E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
+        DISABLED_WARNINGS_solstudio := E_ASSIGNMENT_TYPE_MISMATCH \
+             E_NON_CONST_INIT, \
         LDFLAGS := $(LDFLAGS_JDKLIB) \
             $(call SET_SHARED_LIBRARY_ORIGIN) \
             -L$(INSTALL_LIBRARIES_HERE), \
@@ -516,7 +515,7 @@
          E_STATEMENT_NOT_REACHED \
          E_END_OF_LOOP_CODE_NOT_REACHED, \
       DISABLED_WARNINGS_microsoft := 4018 4267 4244 4312 4819, \
-      DISABLED_WARNINGS_gcc := implicit-fallthrough cast-function-type bad-function-cast, \
+      DISABLED_WARNINGS_gcc := cast-function-type bad-function-cast, \
       LDFLAGS := $(LDFLAGS_JDKLIB) \
           $(call SET_SHARED_LIBRARY_ORIGIN), \
   ))
@@ -608,7 +607,7 @@
     WARNINGS_AS_ERRORS_xlc := false, \
     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
         type-limits missing-field-initializers implicit-fallthrough \
-        strict-aliasing undef unused-function, \
+        strict-aliasing undef unused-function packed, \
     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
         maybe-uninitialized class-memaccess, \
     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
@@ -848,8 +847,7 @@
           maybe-uninitialized shift-negative-value implicit-fallthrough \
           unused-function, \
       DISABLED_WARNINGS_clang := incompatible-pointer-types sign-compare, \
-      DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
-          E_STATEMENT_NOT_REACHED, \
+      DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
       DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
       LDFLAGS := $(LDFLAGS_JDKLIB) \
           $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/lib/CoreLibraries.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/lib/CoreLibraries.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -210,11 +210,8 @@
     EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
-    DISABLED_WARNINGS_gcc := unused-function, \
+    DISABLED_WARNINGS_gcc :=  maybe-uninitialized unused-function, \
     DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral, \
-    DISABLED_WARNINGS_solstudio := \
-        E_ASM_DISABLES_OPTIMIZATION \
-        E_STATEMENT_NOT_REACHED, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
     LIBS_unix := $(LIBZ_LIBS), \
--- a/make/lib/Lib-java.base.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/lib/Lib-java.base.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -72,6 +72,7 @@
     OPTIMIZATION := HIGH, \
     WARNINGS_AS_ERRORS_xlc := false, \
     CFLAGS := $(CFLAGS_JDKLIB), \
+    DISABLED_WARNINGS_gcc := format-nonliteral, \
     DISABLED_WARNINGS_gcc := undef, \
     DISABLED_WARNINGS_clang := undef, \
     EXTRA_HEADER_DIRS := \
--- a/make/lib/Lib-jdk.hotspot.agent.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/lib/Lib-jdk.hotspot.agent.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -61,7 +61,7 @@
     DISABLED_WARNINGS_microsoft := 4267, \
     DISABLED_WARNINGS_gcc := sign-compare pointer-arith, \
     DISABLED_WARNINGS_clang := sign-compare pointer-arith format-nonliteral, \
-    DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \
+    DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma doubunder, \
     CFLAGS := $(CFLAGS_JDKLIB) $(SA_CFLAGS), \
     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \
     EXTRA_SRC := $(LIBSA_EXTRA_SRC), \
--- a/make/lib/Lib-jdk.pack.gmk	Tue Oct 22 11:32:19 2019 +0800
+++ b/make/lib/Lib-jdk.pack.gmk	Tue Oct 22 08:51:18 2019 +0200
@@ -36,8 +36,9 @@
         -DNO_ZLIB -DUNPACK_JNI -DFULL, \
     CFLAGS_release := -DPRODUCT, \
     EXTRA_HEADER_DIRS := $(call GetJavaHeaderDir, java.base), \
-    DISABLED_WARNINGS_gcc := implicit-fallthrough, \
+    DISABLED_WARNINGS_gcc := implicit-fallthrough unused-local-typedefs, \
     DISABLED_WARNINGS_clang := format-nonliteral, \
+    DISABLED_WARNINGS_solstudio := wunreachable, \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
     LDFLAGS_windows := -map:$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpack.map -debug, \
--- a/src/hotspot/os/solaris/dtrace/jhelper.d	Tue Oct 22 11:32:19 2019 +0800
+++ b/src/hotspot/os/solaris/dtrace/jhelper.d	Tue Oct 22 08:51:18 2019 +0200
@@ -41,7 +41,7 @@
 #define pointer uint32_t
 #endif
 
-extern pointer __JvmOffsets;
+extern uint64_t* __JvmOffsets;
 
 /* GrowableArray<CodeHeaps*>* */
 extern pointer __1cJCodeCacheG_heaps_;
--- a/src/hotspot/share/oops/klass.cpp	Tue Oct 22 11:32:19 2019 +0800
+++ b/src/hotspot/share/oops/klass.cpp	Tue Oct 22 08:51:18 2019 +0200
@@ -205,7 +205,7 @@
   int  hsize = arrayOopDesc::base_offset_in_bytes(etype);
   int  esize = type2aelembytes(etype);
   bool isobj = (etype == T_OBJECT);
-  int  tag   =  isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value;
+  int  tag   =  isobj ? _lh_array_tag_obj_value : (int) _lh_array_tag_type_value;
   int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize));
 
   assert(lh < (int)_lh_neutral_value, "must look like an array layout");
--- a/src/hotspot/share/opto/memnode.hpp	Tue Oct 22 11:32:19 2019 +0800
+++ b/src/hotspot/share/opto/memnode.hpp	Tue Oct 22 08:51:18 2019 +0200
@@ -261,7 +261,7 @@
   // Following method is copied from TypeNode:
   void set_type(const Type* t) {
     assert(t != NULL, "sanity");
-    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : NO_HASH);
+    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : (uint)NO_HASH);
     *(const Type**)&_type = t;   // cast away const-ness
     // If this node is in the hash table, make sure it doesn't need a rehash.
     assert(check_hash == NO_HASH || check_hash == hash(), "type change must preserve hash code");
--- a/src/hotspot/share/opto/node.hpp	Tue Oct 22 11:32:19 2019 +0800
+++ b/src/hotspot/share/opto/node.hpp	Tue Oct 22 08:51:18 2019 +0200
@@ -548,7 +548,7 @@
   }
   // Swap input edge order.  (Edge indexes i1 and i2 are usually 1 and 2.)
   void swap_edges(uint i1, uint i2) {
-    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : NO_HASH);
+    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : (uint)NO_HASH);
     // Def-Use info is unchanged
     Node* n1 = in(i1);
     Node* n2 = in(i2);
@@ -1720,7 +1720,7 @@
 public:
   void set_type(const Type* t) {
     assert(t != NULL, "sanity");
-    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : NO_HASH);
+    debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : (uint)NO_HASH);
     *(const Type**)&_type = t;   // cast away const-ness
     // If this node is in the hash table, make sure it doesn't need a rehash.
     assert(check_hash == NO_HASH || check_hash == hash(), "type change must preserve hash code");
--- a/src/hotspot/share/prims/jvm.cpp	Tue Oct 22 11:32:19 2019 +0800
+++ b/src/hotspot/share/prims/jvm.cpp	Tue Oct 22 08:51:18 2019 +0200
@@ -2308,7 +2308,7 @@
     ConstantPool* cp = InstanceKlass::cast(k)->constants();
     for (int index = cp->length() - 1; index >= 0; index--) {
       constantTag tag = cp->tag_at(index);
-      types[index] = (tag.is_unresolved_klass()) ? JVM_CONSTANT_Class : tag.value();
+      types[index] = (tag.is_unresolved_klass()) ? (unsigned char) JVM_CONSTANT_Class : tag.value();
     }
   }
 JVM_END