Created attachment 1387908 [details] Pre-processed C source code file. Description of problem: This issue was originally discovered by trying to compile java-1.8.0-openjdk. Version-Release number of selected component (if applicable): # rpm -q gcc gcc-8.0.1-0.6.fc28.ppc64le How reproducible: 100% Steps to Reproduce: $ /usr/bin/gcc -Wno-unused -Wno-parentheses -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -D_LP64=1 -D_LITTLE_ENDIAN -DABI_ELFv2 -DLINUX -DNDEBUG -DARCH='"ppc64le"' -Dppc64le -DRELEASE='"1.8.0_161"' -g -pipe -Wformat -Wno-cpp -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fstack-clash-protection -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-lifetime-dse -fPIC -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES -DMLIB_NO_LIBSUNMATH -DMLIB_OS64BIT -g -O3 -DTHIS_FILE='"mlib_c_ImageThresh1_U8.c"' -c -MMD -MF /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/build/jdk8.build/jdk/objs/libmlib_image/mlib_c_ImageThresh1_U8.d -o /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/build/jdk8.build/jdk/objs/libmlib_image/mlib_c_ImageThresh1_U8.o /tmp/ccimn3X1.c Actual results: cc1: warning: command line option ‘-std=gnu++98’ is valid for C++/ObjC++ but not for C *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins. Event | Plugins PLUGIN_FINISH_UNIT | annobin: Generate final annotations PLUGIN_START_UNIT | annobin: Generate global annotations PLUGIN_ALL_PASSES_END | annobin: Generate per-function annotations during RTL pass: reload /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/jdk/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c: In function ‘mlib_c_ImageThresh1_U83’: /builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.161-2.b14.fc28.ppc64le/openjdk/jdk/src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c:270:1: internal compiler error: in lra_set_insn_recog_data, at lra.c:9 98 } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. {standard input}: Assembler messages: {standard input}: Error: .size expression for ccimn3X1.c does not evaluate to a constant Preprocessed source stored into /tmp/cca3CQcQ.out file, please attach this to your bugreport. Expected results: File compiles fine with no internal compiler errors. Additional info: The same file compiles fine on other architectures. E.g. x86_64, i686 or ppc64 (BE). The code section in question where there compiler barfs looks like this (around line 7279): for (i = 0; i < height; i++) { for (j = 0; j <= (width - 8); j += 8) { pdst_row[j] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31))); pdst_row[j + 1] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 1])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 1])) >> 31))); pdst_row[j + 2] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 2])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 2])) >> 31))); pdst_row[j + 3] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 3])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 3])) >> 31))); pdst_row[j + 4] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 4])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 4])) >> 31))); pdst_row[j + 5] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 5])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 5])) >> 31))); pdst_row[j + 6] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 6])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 6])) >> 31))); pdst_row[j + 7] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j + 7])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j + 7])) >> 31))); } for (; j < width; j++) { pdst_row[j] = (((ghigh0) & (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31)) | ((glow0) &~ (((thresh0) - (mlib_s32)(psrc_row[j])) >> 31))); } psrc_row += src_stride; pdst_row += dst_stride; }
Should be fixed in gcc-8.0.1-0.13.fc28.