fixed LTO for gcc when compiling for platforms where the FORBID_C_FUNCTION 
mechanism is active, however the fix does so by inhibiting LTO for a specific 
file. This can hinder optimization, which is the end goal if one is indeed 
doing an LTO build. Fix the issue in a different way by disabling 
FORBID_C_FUNCTION entirely for os.cpp, which is where the error originates. 
This has a wide downstream effect, as os.cpp contains a call to os::malloc 
which contains the forbidden malloc that causes errors that cannot be 
suppressed by ALLOW_C_FUNCTION in an LTO build. This is a stopgap fix until 
FORBID_C_FUNCTION is fixed to work properly with LTO on all platforms. While 
here, also fix a memory leak in jvmciEnv.cpp

-------------

Commit messages:
 - Fix memory leak in jvmciEnv.cpp
 - Stopgap fix in os.cpp
 - Declaration fix in compilerWarnings_gcc.hpp
 - DISABLE_POISONING_STOPGAP in compilerWarnings_gcc.hpp
 - 8345265

Changes: https://git.openjdk.org/jdk/pull/22464/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22464&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8345265
  Stats: 10 lines in 4 files changed: 3 ins; 4 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/22464.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22464/head:pull/22464

PR: https://git.openjdk.org/jdk/pull/22464

Reply via email to