This fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84785, which is currently causing WebRTC (from its master branch) from being built (and consequently upstream Chromium as well) with gcc-7.3.1-5.fc27: $ /usr/bin/g++ -MMD -MF obj/modules/rtp_rtcp/rtp_rtcp_format/rtp_rtcp_defines.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE _GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 - D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENA BLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DUSE_BUILTIN_SW_CODECS -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=1 -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLO CATOR_NOTHROW=1 -I../.. -Igen -I../../third_party/libyuv/include -I../../common_video/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-ma cro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -pthread -m64 -march=x86-64 -Wall -Wno-u nused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -isystem ../ ../third_party/abseil-cpp -std=gnu++11 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../modules/rtp_rtcp/ include/rtp_rtcp_defines.cc -o obj/modules/rtp_rtcp/rtp_rtcp_format/rtp_rtcp_defines.o In file included from ../../modules/rtp_rtcp/include/rtp_rtcp_defines.h:18:0, from ../../modules/rtp_rtcp/include/rtp_rtcp_defines.cc:11: ../../third_party/abseil-cpp/absl/types/variant.h: In substitution of ‘template<long unsigned int I, class T> using variant_alternative_t = typename absl::variant_alternative ::type [with long unsigned int I = I; T = absl::variant<webrtc::AudioPayload, webrtc::VideoPayload>]’: ../../third_party/abseil-cpp/absl/types/variant.h:489:7: required by substitution of ‘template<class T, long unsigned int I, class Tj, absl::enable_if_t<std::is_constructib le<Tj, T>::value, void>* <anonymous> > constexpr absl::variant<webrtc::AudioPayload, webrtc::VideoPayload>::variant(T&&) [with T = const absl::variant<webrtc::AudioPayload, w ebrtc::VideoPayload>&; long unsigned int I = <missing>; Tj = <missing>; absl::enable_if_t<std::is_constructible<Tj, T>::value, void>* <anonymous> = <missing>]’ ../../modules/rtp_rtcp/include/rtp_rtcp_defines.cc:38:51: required from here ../../third_party/abseil-cpp/absl/types/variant.h:489:7: internal compiler error: unexpected expression ‘I’ of kind template_parm_index class Tj = absl::variant_alternative_t<I, variant>, ^~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. I've bisected GCC's gcc-7-branch and pinpointed the fix to that specific commit.
(I forgot to mention GCC 8 on Fedora 28 is fine)
gcc-7.3.1-6.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-625d38af3b
gcc-7.3.1-6.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-625d38af3b
gcc-7.3.1-6.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.