On Tue, 13 May 2025 18:36:18 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
>> The following line results in unused-result warning on linux/clang. >> >> >> /java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c:695:9: error: ignoring >> return value of function >> declared with 'warn_unused_result' attribute [-Werror,-Wunused-result] >> 695 | write ( AWT_WRITEPIPE, &wakeUp_char, 1 ); >> >> >> There are two ways to handle it >> >> 1) Make changes to XToolkit.c such that the warning is no longer thrown. But >> throwing an error based on the result of `write ( AWT_WRITEPIPE, >> &wakeUp_char, 1 );` will result in unexpected behavioral changes and the >> best way to handle it is to have an empty if block with an appropriate >> comment. >> >> >> There was a discussion about the same line long ago and the reason the >> result of `write()` was not handled and it was left unchanged was not to >> introduce behavioral change - >> https://mail.openjdk.org/pipermail/awt-dev/2016-July/011626.html >> >> >> 2) Add unused-result to disabled warning section for clang similar to gcc - >> https://github.com/openjdk/jdk/blob/d1543429ff29ca0d761b8473b3fb8621abcd226d/make/modules/java.desktop/lib/AwtLibraries.gmk#L281. >> The 1st approach was picked over the 2nd since the usual recommendation is >> not to add to disabled warning section unless there is no other option. >> >> NOTE: the fix has been tested on linux/gcc , it does need to be tested on >> linux/clang. > > src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c line 696: > >> 694: if (!isMainThread() && awt_pipe_inited) { >> 695: if (write(AWT_WRITEPIPE, &wakeUp_char, 1) < 0) { >> 696: // if block is left empty to avoid adding unused-result to > > Does it make sense to add a trace with `DTRACE_PRINTLN*`? > > It could be useful for debugging… yes If write does not return 1 might indicate an error, it would be good to log it. so we can skip this long comment ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25217#discussion_r2088003281