Bug 99246 - [modules] ICE in write_location, at cp/module.cc:15687
Summary: [modules] ICE in write_location, at cp/module.cc:15687
Status: RESOLVED DUPLICATE of bug 98718
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 11.0
: P3 normal
Target Milestone: ---
Assignee: Nathan Sidwell
URL:
Keywords:
Depends on:
Blocks: 99227
  Show dependency treegraph
 
Reported: 2021-02-24 08:49 UTC by Alexander Lelyakin
Modified: 2021-04-15 11:00 UTC (History)
4 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Lelyakin 2021-02-24 08:49:00 UTC
g++ -std=c++20 -fmodules-ts -x c++-system-header numbers
g++ -std=c++20 -fmodules-ts -x c++-system-header ratio
g++ -std=c++20 -fmodules-ts -x c++-system-header cstdio
g++ -std=c++20 -fmodules-ts -x c++-system-header ostream
g++ -std=c++20 -fmodules-ts -x c++-system-header coroutine
g++ -std=c++20 -fmodules-ts -x c++-system-header barrier
----
/usr/local/include/c++/11.0.0/barrier: internal compiler error: in write_location, at cp/module.cc:15687
0x6ddcb3 module_state::write_location(bytes_out&, unsigned int)
	../../gcc/gcc/cp/module.cc:15687
0xa5cbc9 trees_out::core_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:5912
0xa5dafc trees_out::tree_node_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:7166
0xa5dafc trees_out::fn_parms_init(tree_node*)
	../../gcc/gcc/cp/module.cc:10067
0xa5aa96 trees_out::decl_value(tree_node*, depset*)
	../../gcc/gcc/cp/module.cc:7763
0xa5b0bb trees_out::decl_node(tree_node*, walk_kind)
	../../gcc/gcc/cp/module.cc:8624
0xa5c0b2 trees_out::tree_node(tree_node*)
	../../gcc/gcc/cp/module.cc:9179
0xa611f0 module_state::write_cluster(elf_out*, depset**, unsigned int, depset::hash&, unsigned int*, unsigned int*)
	../../gcc/gcc/cp/module.cc:14763
0xa62be8 module_state::write(elf_out*, cpp_reader*)
	../../gcc/gcc/cp/module.cc:17734
0xa638fc finish_module_processing(cpp_reader*)
	../../gcc/gcc/cp/module.cc:19860
0x9f72cb c_parse_final_cleanups()
	../../gcc/gcc/cp/decl2.c:5175
----
g++ (GCC) 11.0.0 20210223 (experimental)
Comment 1 Alexander Lelyakin 2021-02-26 08:47:54 UTC
This bug have disappeared in version 20210225
Comment 2 Nathan Sidwell 2021-02-26 12:49:52 UTC
I suspect also as a result of 98718

*** This bug has been marked as a duplicate of bug 98718 ***
Comment 3 Alexander Lelyakin 2021-03-24 10:04:10 UTC
This ICE appeared again, gcc at commit bf1f3168f474734400e7a97660d1e7dec664bca9:
----
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header bit
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header istream
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header cmath
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header locale
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header bitset
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header shared_mutex
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header new
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header ciso646
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header memory
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header fstream
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header thread
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header regex
----
In module imported at /usr/local/include/c++/11.0.1/sstream:38:1,
        included from /usr/local/include/c++/11.0.1/regex:46:
/usr/local/include/c++/11.0.1/istream: note: unable to represent further imported source locations
/usr/local/include/c++/11.0.1/regex: internal compiler error: in write_location, at cp/module.cc:15642
0x6e02e9 module_state::write_location(bytes_out&, unsigned int)
	../../gcc/gcc/cp/module.cc:15642
0xa60e13 trees_out::core_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:5894
0xa64244 trees_out::tree_node_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:7044
0xa64244 trees_out::tree_value(tree_node*)
	../../gcc/gcc/cp/module.cc:8926
0xa60314 trees_out::tree_node(tree_node*)
	../../gcc/gcc/cp/module.cc:9124
0xa6462a trees_out::write_var_def(tree_node*)
	../../gcc/gcc/cp/module.cc:11511
0xa658c5 module_state::write_cluster(elf_out*, depset**, unsigned int, depset::hash&, unsigned int*, unsigned int*)
	../../gcc/gcc/cp/module.cc:14697
0xa6721e module_state::write(elf_out*, cpp_reader*)
	../../gcc/gcc/cp/module.cc:17769
0xa67dff finish_module_processing(cpp_reader*)
	../../gcc/gcc/cp/module.cc:19883
0x9fb20b c_parse_final_cleanups()
	../../gcc/gcc/cp/decl2.c:5175
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
----
g++ (GCC) 11.0.1 20210324 (experimental)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Comment 4 Alexander Lelyakin 2021-03-31 05:21:03 UTC
This report is marked as resolved, but it is stable reproducible all the time.

/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header bit
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header istream
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header cmath
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header locale
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header bitset
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header shared_mutex
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header new
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header ciso646
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header memory
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header fstream
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header thread
/usr/local/bin/g++ -std=c++20 -fmodules-ts -x c++-system-header regex
----
In module imported at /usr/local/include/c++/11.0.1/sstream:38:1,
        included from /usr/local/include/c++/11.0.1/regex:46:
/usr/local/include/c++/11.0.1/istream: note: unable to represent further imported source locations
/usr/local/include/c++/11.0.1/regex: internal compiler error: in write_location, at cp/module.cc:15593
0x6e02cf module_state::write_location(bytes_out&, unsigned int)
	../../gcc/gcc/cp/module.cc:15593
0xa60ff3 trees_out::core_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:5900
0xa64464 trees_out::tree_node_vals(tree_node*)
	../../gcc/gcc/cp/module.cc:7050
0xa64464 trees_out::tree_value(tree_node*)
	../../gcc/gcc/cp/module.cc:8887
0xa604f4 trees_out::tree_node(tree_node*)
	../../gcc/gcc/cp/module.cc:9085
0xa6484a trees_out::write_var_def(tree_node*)
	../../gcc/gcc/cp/module.cc:11472
0xa65ae5 module_state::write_cluster(elf_out*, depset**, unsigned int, depset::hash&, unsigned int*, unsigned int*)
	../../gcc/gcc/cp/module.cc:14648
0xa6743e module_state::write(elf_out*, cpp_reader*)
	../../gcc/gcc/cp/module.cc:17720
0xa6801f finish_module_processing(cpp_reader*)
	../../gcc/gcc/cp/module.cc:19831
0x9fb4cb c_parse_final_cleanups()
	../../gcc/gcc/cp/decl2.c:5175
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
----
g++ (GCC) 11.0.1 20210330 (experimental)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Comment 5 GCC Commits 2021-04-14 15:19:57 UTC
The master branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:a065e0bb092a010664777394530ab1a52bb5293b

commit r11-8178-ga065e0bb092a010664777394530ab1a52bb5293b
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Apr 14 16:19:46 2021 +0100

    aarch64: Handle more SVE vector constants [PR99246]
    
    PR99246 is about a case in which we failed to handle a CONST_VECTOR
    with NELTS_PER_PATTERN==2, i.e. a vector with a âforegroundâ sequence
    of N vectors followed by a repeating âbackgroundâ sequence of N vectors.
    
    At the moment, it's difficult to produce these vectors directly,
    but I'm hoping that for GCC 12 we'll do more folding, which will
    in turn make this easier to test and easier to optimise.  Until then,
    the patch simply relies on the testcase in the PR.
    
    gcc/
            PR target/99246
            * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
            New function.
            (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
    
    gcc/testsuite/
            PR target/99246
            * gcc.target/aarch64/sve/acle/general/pr99246.c: New test.
Comment 6 Richard Sandiford 2021-04-15 11:00:40 UTC
Oops, sorry for the PR typo, should have been PR99249.