[Bug ipa/105600] ICE with LTO when building Mumble from git on arm64

acoplan at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 18 09:25:26 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105600

--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Created attachment 52988
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52988&action=edit
reduced testcase

I managed to reproduce the environment and reduce a testcase (see the attached
tarball):

$ cat build.sh
#!/bin/bash
set -e
CC=aarch64-linux-gnu-g++
$CC -fsanitize=undefined -flto -O2 -std=gnu++14 -o a.o -c a.cc
$CC -fsanitize=undefined -O2 -std=gnu++14 -o b.o -c b.cc
$CC b.o a.o
$ ./build.sh
a.cc: In instantiation of ‘nlohmann::basic_json< <template-parameter-1-1>,
<template-parameter-1-2>, <template-parameter-1-3>, <template-parameter-1-4>,
<template-parameter-1-5>, <template-parameter-1-6>, <template-parameter-1-7>,
<template-parameter-1-8>, <template-parameter-1-9>, <template-parameter-1-10>
>::reference nlohmann::basic_json< <template-parameter-1-1>,
<template-parameter-1-2>, <template-parameter-1-3>, <template-parameter-1-4>,
<template-parameter-1-5>, <template-parameter-1-6>, <template-parameter-1-7>,
<template-parameter-1-8>, <template-parameter-1-9>, <template-parameter-1-10>
>::operator[](T) [with T = const char*; ObjectType = std::map;
<template-parameter-1-2> = std::vector; <template-parameter-1-3> =
std::__cxx11::basic_string<char>; <template-parameter-1-4> = bool;
<template-parameter-1-5> = long int; <template-parameter-1-6> = long unsigned
int; <template-parameter-1-7> = double; <template-parameter-1-8> =
std::allocator; JSONSerializer = nlohmann::adl_serializer;
<template-parameter-1-10> = std::vector<unsigned char>; reference =
nlohmann::basic_json<>]’:
a.cc:87:65:   required from here
a.cc:83:3: warning: no return statement in function returning non-void
[-Wreturn-type]
   83 |   }
      |   ^
during IPA pass: icf
lto1: internal compiler error: Segmentation fault
0xd4b25f crash_signal
        /home/alecop01/toolchain/src/gcc/gcc/toplev.cc:322
0x11508b9 varpool_node::get_constructor()
        /home/alecop01/toolchain/src/gcc/gcc/varpool.cc:300
0x1bd2db6 ipa_icf::sem_variable::equals(ipa_icf::sem_item*,
hash_map<symtab_node*, ipa_icf::sem_item*,
simple_hashmap_traits<default_hash_traits<symtab_node*>, ipa_icf::sem_item*>
>&)
        /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:1697
0x1bd3e78 ipa_icf::sem_item_optimizer::subdivide_classes_by_equality(bool)
        /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:2731
0x1bdbce0 ipa_icf::sem_item_optimizer::execute()
        /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:2464
0x1bde1f2 ipa_icf_driver
        /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:3600
0x1bde1f2 ipa_icf::pass_ipa_icf::execute(function*)
        /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:3647
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: aarch64-linux-gnu-g++ returned 1 exit status
compilation terminated.
/home/alecop01/toolchain/build-aarch64-linux-gnu/install/bin/../lib/gcc/aarch64-linux-gnu/13.0.0/../../../../aarch64-linux-gnu/bin/ld:
error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Confirmed on trunk.


More information about the Gcc-bugs mailing list