8270083: -Wnonnull errors happen with GCC 11.1.1
Reviewed-by: erikj, dlong, kbarrett
This commit is contained in:
parent
ec975c6a05
commit
68b6e11e48
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,6 +36,7 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||
BUILD_LIBJVM_assembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
|
||||
BUILD_LIBJVM_cardTableBarrierSetAssembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
|
||||
BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized
|
||||
BUILD_LIBJVM_ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp_CXXFLAGS := -Wno-nonnull
|
||||
ifeq ($(DEBUG_LEVEL), release)
|
||||
# Need extra inlining to collapse shared marking code into the hot marking loop
|
||||
BUILD_LIBJVM_shenandoahMark.cpp_CXXFLAGS := --param inline-unit-growth=1000
|
||||
|
@ -7427,6 +7427,10 @@ void Assembler::evprolq(XMMRegister dst, XMMRegister src, int shift, int vector_
|
||||
emit_int24(0x72, (0xC0 | encode), shift & 0xFF);
|
||||
}
|
||||
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for xmm0. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
void Assembler::evprord(XMMRegister dst, XMMRegister src, int shift, int vector_len) {
|
||||
assert(VM_Version::supports_evex(), "requires EVEX support");
|
||||
assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), "requires VL support");
|
||||
@ -7444,6 +7448,7 @@ void Assembler::evprorq(XMMRegister dst, XMMRegister src, int shift, int vector_
|
||||
int encode = vex_prefix_and_encode(xmm0->encoding(), dst->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes);
|
||||
emit_int24(0x72, (0xC0 | encode), shift & 0xFF);
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
void Assembler::evprolvd(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len) {
|
||||
assert(VM_Version::supports_evex(), "requires EVEX support");
|
||||
|
@ -318,7 +318,11 @@ enum reg_save_layout {
|
||||
// expensive. The deopt blob is the only thing which needs to
|
||||
// describe FPU registers. In all other cases it should be sufficient
|
||||
// to simply save their current value.
|
||||
|
||||
//
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for rax. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
static OopMap* generate_oop_map(StubAssembler* sasm, int num_rt_args,
|
||||
bool save_fpu_registers = true) {
|
||||
|
||||
@ -418,6 +422,7 @@ static OopMap* generate_oop_map(StubAssembler* sasm, int num_rt_args,
|
||||
|
||||
return map;
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
#define __ this->
|
||||
|
||||
|
@ -227,6 +227,10 @@ inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const {
|
||||
|
||||
// Compiled frames
|
||||
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for rax. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
inline oop frame::saved_oop_result(RegisterMap* map) const {
|
||||
oop* result_adr = (oop *)map->location(rax->as_VMReg());
|
||||
guarantee(result_adr != NULL, "bad register save location");
|
||||
@ -240,5 +244,6 @@ inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) {
|
||||
|
||||
*result_adr = obj;
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
#endif // CPU_X86_FRAME_X86_INLINE_HPP
|
||||
|
@ -465,6 +465,10 @@ private:
|
||||
_spill_offset += 8;
|
||||
}
|
||||
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for rax. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
void initialize(ZLoadBarrierStubC2* stub) {
|
||||
// Create mask of caller saved registers that need to
|
||||
// be saved/restored if live
|
||||
@ -540,6 +544,7 @@ private:
|
||||
// Stack pointer must be 16 bytes aligned for the call
|
||||
_spill_offset = _spill_size = align_up(xmm_spill_size + gp_spill_size + opmask_spill_size + arg_spill_size, 16);
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
public:
|
||||
ZSaveLiveRegisters(MacroAssembler* masm, ZLoadBarrierStubC2* stub) :
|
||||
|
@ -168,6 +168,10 @@ class RegisterSaver {
|
||||
static void restore_result_registers(MacroAssembler* masm);
|
||||
};
|
||||
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for rax. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
OopMap* RegisterSaver::save_live_registers(MacroAssembler* masm, int additional_frame_words, int* total_frame_words, bool save_vectors) {
|
||||
int off = 0;
|
||||
int num_xmm_regs = XMMRegisterImpl::number_of_registers;
|
||||
@ -360,6 +364,7 @@ OopMap* RegisterSaver::save_live_registers(MacroAssembler* masm, int additional_
|
||||
|
||||
return map;
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
void RegisterSaver::restore_live_registers(MacroAssembler* masm, bool restore_vectors) {
|
||||
int num_xmm_regs = XMMRegisterImpl::number_of_registers;
|
||||
|
@ -580,6 +580,10 @@ struct AuxiliarySaves {
|
||||
bool should_detach;
|
||||
};
|
||||
|
||||
// Register is a class, but it would be assigned numerical value.
|
||||
// "0" is assigned for rax and for xmm0. Thus we need to ignore -Wnonnull.
|
||||
PRAGMA_DIAG_PUSH
|
||||
PRAGMA_NONNULL_IGNORED
|
||||
address ProgrammableUpcallHandler::generate_optimized_upcall_stub(jobject receiver, Method* entry, jobject jabi, jobject jconv) {
|
||||
ResourceMark rm;
|
||||
const ABIDescriptor abi = ForeignGlobals::parse_abi_descriptor(jabi);
|
||||
@ -844,6 +848,7 @@ address ProgrammableUpcallHandler::generate_optimized_upcall_stub(jobject receiv
|
||||
|
||||
return blob->code_begin();
|
||||
}
|
||||
PRAGMA_DIAG_POP
|
||||
|
||||
bool ProgrammableUpcallHandler::supports_optimized_upcalls() {
|
||||
return true;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -66,4 +66,8 @@
|
||||
#define PRAGMA_STRINGOP_TRUNCATION_IGNORED
|
||||
#endif
|
||||
|
||||
#ifndef PRAGMA_NONNULL_IGNORED
|
||||
#define PRAGMA_NONNULL_IGNORED
|
||||
#endif
|
||||
|
||||
#endif // SHARE_UTILITIES_COMPILERWARNINGS_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,6 +50,9 @@
|
||||
#define PRAGMA_STRINGOP_TRUNCATION_IGNORED PRAGMA_DISABLE_GCC_WARNING("-Wstringop-truncation")
|
||||
#endif
|
||||
|
||||
#define PRAGMA_NONNULL_IGNORED \
|
||||
PRAGMA_DISABLE_GCC_WARNING("-Wnonnull")
|
||||
|
||||
#if defined(__clang_major__) && \
|
||||
(__clang_major__ >= 4 || \
|
||||
(__clang_major__ >= 3 && __clang_minor__ >= 1)) || \
|
||||
|
Loading…
Reference in New Issue
Block a user