This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/67831] Internal error on complicated constexpr initialization.
- From: "miyuki at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 03 Oct 2015 10:13:38 +0000
- Subject: [Bug c++/67831] Internal error on complicated constexpr initialization.
- Auto-submitted: auto-generated
- References: <bug-67831-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67831
Mikhail Maltsev <miyuki at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-10-03
CC| |miyuki at gcc dot gnu.org
Ever confirmed|0 |1
Known to fail| |6.0
--- Comment #1 from Mikhail Maltsev <miyuki at gcc dot gnu.org> ---
This also reproduces on x86_64 trunk. Probably related to PR 67398.
$ cat main2.cc
struct Task {
struct TaskStaticData {
constexpr TaskStaticData() {}
} const &tsd;
constexpr Task() : tsd(TaskStaticData()) {}
};
Task tasks{Task()};
$ cc1plus main2.cc
main2.cc: In function 'void __static_initialization_and_destruction_0(int,
int)':
main2.cc:8:6: internal compiler error: in make_decl_rtl, at varasm.c:1306
Task tasks{Task()};
^
0xf5c1d5 make_decl_rtl(tree_node*)
/home/miyuki/gcc/src/gcc/varasm.c:1302
0x9d4378 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/miyuki/gcc/src/gcc/expr.c:9550
0x9de576 expand_expr
/home/miyuki/gcc/src/gcc/expr.h:255
0x9de576 expand_expr_addr_expr_1
/home/miyuki/gcc/src/gcc/expr.c:7601
0x9d2931 expand_expr_addr_expr
/home/miyuki/gcc/src/gcc/expr.c:7721
0x9d2931 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/miyuki/gcc/src/gcc/expr.c:10709
0x9df24f store_expr_with_bounds(tree_node*, rtx_def*, int, bool, tree_node*)
/home/miyuki/gcc/src/gcc/expr.c:5399
0x9e1825 expand_assignment(tree_node*, tree_node*, bool)
/home/miyuki/gcc/src/gcc/expr.c:5171
0x8d3358 expand_gimple_stmt_1
/home/miyuki/gcc/src/gcc/cfgexpand.c:3584
0x8d3358 expand_gimple_stmt
/home/miyuki/gcc/src/gcc/cfgexpand.c:3680
0x8d5906 expand_gimple_basic_block
/home/miyuki/gcc/src/gcc/cfgexpand.c:5684
0x8dbee6 execute
/home/miyuki/gcc/src/gcc/cfgexpand.c:6296
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
clang++ -S -std=c++11 main2.cc
main2.cc:5:26: warning: binding reference member 'tsd' to a temporary value
[-Wdangling-field]
constexpr Task() : tsd(TaskStaticData()) {}
^~~~~~~~~~~~~~~~
main2.cc:4:12: note: reference member declared here
} const &tsd;
^
1 warning generated.