8073315: Enable gcc -Wtype-limits and fix upcoming issues

Relevant fixes in blockOffsetTable.cpp, os_linux.cpp, parCardTableModRefBS.cpp.

Reviewed-by: jwilhelm, kbarrett, simonis
This commit is contained in:
Goetz Lindenmaier 2015-02-16 14:07:36 +01:00
parent 2632925f9f
commit a7edf52a02
28 changed files with 71 additions and 86 deletions

View file

@ -3732,14 +3732,14 @@ char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr) {
// Does this overlap the block we wanted? Give back the overlapped
// parts and try again.
size_t top_overlap = requested_addr + (bytes + gap) - base[i];
if (top_overlap >= 0 && top_overlap < bytes) {
ptrdiff_t top_overlap = requested_addr + (bytes + gap) - base[i];
if (top_overlap >= 0 && (size_t)top_overlap < bytes) {
unmap_memory(base[i], top_overlap);
base[i] += top_overlap;
size[i] = bytes - top_overlap;
} else {
size_t bottom_overlap = base[i] + bytes - requested_addr;
if (bottom_overlap >= 0 && bottom_overlap < bytes) {
ptrdiff_t bottom_overlap = base[i] + bytes - requested_addr;
if (bottom_overlap >= 0 && (size_t)bottom_overlap < bytes) {
unmap_memory(requested_addr, bottom_overlap);
size[i] = bytes - bottom_overlap;
} else {
@ -6003,11 +6003,11 @@ int os::get_core_path(char* buffer, size_t bufferSize) {
}
if (strlen(core_pattern) == 0) {
return 0;
return -1;
}
char *pid_pos = strstr(core_pattern, "%p");
size_t written;
int written;
if (core_pattern[0] == '/') {
written = jio_snprintf(buffer, bufferSize, core_pattern);
@ -6016,8 +6016,7 @@ int os::get_core_path(char* buffer, size_t bufferSize) {
const char* p = get_current_directory(cwd, PATH_MAX);
if (p == NULL) {
assert(p != NULL, "failed to get current directory");
return 0;
return -1;
}
if (core_pattern[0] == '|') {
@ -6029,8 +6028,11 @@ int os::get_core_path(char* buffer, size_t bufferSize) {
}
}
if ((written >= 0) && (written < bufferSize)
&& (pid_pos == NULL) && (core_pattern[0] != '|')) {
if (written < 0) {
return -1;
}
if (((size_t)written < bufferSize) && (pid_pos == NULL) && (core_pattern[0] != '|')) {
int core_uses_pid_file = ::open("/proc/sys/kernel/core_uses_pid", O_RDONLY);
if (core_uses_pid_file != -1) {
@ -6038,7 +6040,7 @@ int os::get_core_path(char* buffer, size_t bufferSize) {
ssize_t ret = ::read(core_uses_pid_file, &core_uses_pid, 1);
::close(core_uses_pid_file);
if (core_uses_pid == '1'){
if (core_uses_pid == '1') {
jio_snprintf(buffer + written, bufferSize - written,
".%d", current_process_id());
}