[10] Buld warnings from GCC 7.1 on Fedora 26
Yasumasa Suenaga
yasuenag at gmail.com
Wed Jul 12 01:51:11 UTC 2017
Hi all,
I tried to build jdk10-hs on Fedora 26 with gcc-7.1.1-3.fc26.x86_64,
then I encountered some build warnings.
I want to fix them. Can I file it to JBS and send review request for 10?
details:
1-warning:
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/code/dependencies.cpp:
In static member function 'static void
Dependencies::write_dependency_to(xmlStream*, Dependencies::DepType,
GrowableArray<Dependencies::DepArgument>*, Klass*)':
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/code/dependencies.cpp:714:6:
warning: '%d' directive writing between 1 and 10 bytes into a region
of size 9 [-Wformat-overflow=]
void Dependencies::write_dependency_to(xmlStream* xtty,
^~~~~~~~~~~~
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/code/dependencies.cpp:714:6:
note: directive argument in the range [0, 2147483647]
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/code/dependencies.cpp:745:27:
note: 'sprintf' output between 3 and 12 bytes into a destination of
size 10
char xn[10]; sprintf(xn, "x%d", j);
~~~~~~~^~~~~~~~~~~~~~
1-patch:
diff -r 9c54cd2cdf09 src/share/vm/code/dependencies.cpp
--- a/src/share/vm/code/dependencies.cpp Mon Jul 10 23:28:25 2017 +0200
+++ b/src/share/vm/code/dependencies.cpp Wed Jul 12 10:32:20 2017 +0900
@@ -742,7 +742,7 @@
xtty->object("x", arg.metadata_value());
}
} else {
- char xn[10]; sprintf(xn, "x%d", j);
+ char xn[12]; sprintf(xn, "x%d", j);
if (arg.is_oop()) {
xtty->object(xn, Handle(thread, arg.oop_value()));
} else {
2-warning:
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/compiler/methodMatcher.cpp:
In static member function 'static bool
MethodMatcher::canonicalize(char*, const char*&)':
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/compiler/methodMatcher.cpp:99:22:
warning: comparison between pointer and zero character constant
[-Wpointer-compare]
if (colon + 2 != '\0') {
^~~~
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/compiler/methodMatcher.cpp:99:22:
note: did you mean to dereference the pointer?
2-patch:
diff -r 9c54cd2cdf09 src/share/vm/compiler/methodMatcher.cpp
--- a/src/share/vm/compiler/methodMatcher.cpp Mon Jul 10 23:28:25 2017 +0200
+++ b/src/share/vm/compiler/methodMatcher.cpp Wed Jul 12 10:32:20 2017 +0900
@@ -96,7 +96,7 @@
bool have_colon = (colon != NULL);
if (have_colon) {
// Don't allow multiple '::'
- if (colon + 2 != '\0') {
+ if (colon[2] != '\0') {
if (strstr(colon+2, "::")) {
error_msg = "Method pattern only allows one '::' allowed";
return false;
3-warning:
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/logging/logFileOutput.cpp:
In static member function 'static void
LogFileOutput::set_file_name_parameters(jlong)':
/home/ysuenaga/OpenJDK/jdk10-hs/hotspot/src/share/vm/logging/logFileOutput.cpp:61:99:
warning: format not a string literal, format string not checked
[-Wformat-nonliteral]
res = (int)strftime(_vm_start_time_str, sizeof(_vm_start_time_str),
TimestampFormat, &local_time);
^
3-patch:
diff -r 9c54cd2cdf09 src/share/vm/logging/logFileOutput.cpp
--- a/src/share/vm/logging/logFileOutput.cpp Mon Jul 10 23:28:25 2017 +0200
+++ b/src/share/vm/logging/logFileOutput.cpp Wed Jul 12 10:32:20 2017 +0900
@@ -51,6 +51,8 @@
_file_name = make_file_name(name + strlen(Prefix), _pid_str,
_vm_start_time_str);
}
+PRAGMA_DIAG_PUSH
+PRAGMA_FORMAT_NONLITERAL_IGNORED
void LogFileOutput::set_file_name_parameters(jlong vm_start_time) {
int res = jio_snprintf(_pid_str, sizeof(_pid_str), "%d",
os::current_process_id());
assert(res > 0, "PID buffer too small");
@@ -61,6 +63,7 @@
res = (int)strftime(_vm_start_time_str, sizeof(_vm_start_time_str),
TimestampFormat, &local_time);
assert(res > 0, "VM start time buffer too small.");
}
+PRAGMA_DIAG_POP
LogFileOutput::~LogFileOutput() {
if (_stream != NULL) {
Thanks,
Yasumasa
More information about the hotspot-dev
mailing list