Summary: | [5 Regression] internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:909 | ||
---|---|---|---|
Product: | gcc | Reporter: | David Kredba <nheghathivhistha> |
Component: | debug | Assignee: | Jakub Jelinek <jakub> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | cas43, jakub |
Priority: | P1 | ||
Version: | 5.0 | ||
Target Milestone: | 5.0 | ||
Host: | Target: | x86_64-*-* | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2015-04-06 00:00:00 | |
Attachments: |
Preprocessed source file
gcc5-pr65678.patch |
Description
David Kredba
2015-04-06 17:34:50 UTC
C-reduced test case: extern "C" void *memmove(void *, const void *, unsigned long); long a; template <class, class Source> int BitCast(Source &p1) { memmove(&a, &p1, sizeof a); return a; } static int double_to_uint64(double p1) { return BitCast<int>(p1); } class A { public: A(double p1) : d64_(double_to_uint64(p1)) {} int m_fn1(); int m_fn2() { int b; b = d64_; if (b) return 0; } int d64_; }; void FillFractionals(); void FastFixedDtoa(double p1) { int c = A(p1).m_fn2(), d = A(p1).m_fn1(); if (d) FillFractionals(); } Confirmed: $ /ssd/uros/gcc-build/gcc/cc1plus -Os -ggdb -quiet pr65678.C pr65678.C: In function ‘void FastFixedDtoa(double)’: pr65678.C:28:1: internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:909 } ^ 0x9936fb gen_rtx_SUBREG(machine_mode, rtx_def*, int) /home/uros/gcc-svn/trunk/gcc/emit-rtl.c:909 0xf2bc16 dead_debug_insert_temp(dead_debug_local*, unsigned int, rtx_insn*, debug_temp_where) /home/uros/gcc-svn/trunk/gcc/valtrack.c:743 0x93079d df_note_bb_compute /home/uros/gcc-svn/trunk/gcc/df-problems.c:3179 0x93079d df_note_compute /home/uros/gcc-svn/trunk/gcc/df-problems.c:3286 0x92b730 df_analyze_problem(dataflow*, bitmap_head*, int*, int) /home/uros/gcc-svn/trunk/gcc/df-core.c:1205 0x92b828 df_analyze_1 /home/uros/gcc-svn/trunk/gcc/df-core.c:1265 0x1244c91 rest_of_handle_dse /home/uros/gcc-svn/trunk/gcc/dse.c:3736 0x1244c91 execute /home/uros/gcc-svn/trunk/gcc/dse.c:3837 Please submit a full bug report, Created attachment 35242 [details] gcc5-pr65678.patch Untested fix. Author: jakub Date: Tue Apr 7 14:35:18 2015 New Revision: 221900 URL: https://gcc.gnu.org/viewcvs?rev=221900&root=gcc&view=rev Log: PR debug/65678 * valtrack.c (debug_lowpart_subreg): New function. (dead_debug_insert_temp): Use it. * g++.dg/debug/pr65678.C: New test. Added: trunk/gcc/testsuite/g++.dg/debug/pr65678.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/valtrack.c Fixed. Author: vmakarov Date: Tue Apr 7 15:01:07 2015 New Revision: 221901 URL: https://gcc.gnu.org/viewcvs?rev=221901&root=gcc&view=rev Log: 2015-04-07 Vladimir Makarov <vmakarov@redhat.com> PR target/65678 * lra-remat.c (do_remat): Process input and non-input insn registers separately. Modified: trunk/gcc/ChangeLog trunk/gcc/lra-remat.c |