> Hi all, > File src/java.base/share/native/libjli/java.c compile error: control reaches > end of non-void function [-Werror=return-type] with gcc options > -fsanitize=address -O0. The function int JavaMain(void* _args) in this file > will execute return ret in LEAVE() macro, but gcc with -O0 is not smart > enough to recognized that the function already has return statement before at > the end of function. It's a gcc bug which has been recorded by > [80959](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80959), and below code > snippet can demonstrate the gcc bug. I think we should disable return-type > gcc warning for java.c file before the gcc bug has been fixed. Risk is low. > > >> cat java.c > char a() { > return 0; > int b; > if (a(&b)) > return 0; > } > >> gcc -O0 -Wall -Wextra -Werror -O0 -c java.c -fsanitize=address > java.c: In function ‘a’: > java.c:6:1: error: control reaches end of non-void function > [-Werror=return-type] > 6 | } > | ^ > cc1: all warnings being treated as errors
SendaoYan has updated the pull request incrementally with one additional commit since the last revision: add "#if defined(__GNUC__)" to fix windows build warning ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24318/files - new: https://git.openjdk.org/jdk/pull/24318/files/83beb975..8d929c8d Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24318&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24318&range=01-02 Stats: 4 lines in 1 file changed: 4 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/24318.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24318/head:pull/24318 PR: https://git.openjdk.org/jdk/pull/24318