Home > Internal Compiler > Internal Compiler Error In Output Die At Dwarf2out.c

Internal Compiler Error In Output Die At Dwarf2out.c

They've been totally replaced in this file; make sure it stays that way. */ #undef DWARF2_UNWIND_INFO #undef DWARF2_FRAME_INFO #if (GCC_VERSION >= 3000) #pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO #endif /* The size Terms Privacy Security Status Help You can't perform that action at this time. Instead create a stub DIE without a type if we have a context DIE present. Comment 4 Jan Hubicka 2011-04-22 09:32:12 UTC Still reproduce at current mainline. check my blog

Please include the complete backtrace with any bug report. add_AT_flag (tdie, DW_AT_declaration, 1); ! But that doesn't make too much sense and indeed when I use an earlier version of the reduced testcase it still crashes with -flto-partition=max on r220010... Anyway that's exactly why current QEMU does not do this anymore. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54694

Comment 2 Toralf Förster 2012-09-25 15:26:25 UTC Created attachment 28271 [details] cc -E n22 ~ # gcc -v Using built-in specs. Bug54694 - [4.7/4.8 Regression] internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2out.c:2387 Summary: [4.7/4.8 Regression] internal compiler error: in dwarf2out_frame_debug_expr, ... Does not fail with C but only C++ but is valid source for both.

  1. Lu from comment #12) > *** Bug 59763 has been marked as a duplicate of this bug. *** Are you sure this is a duplicate?
  2. Description Avi Kivity 2015-03-25 10:47:31 UTC lto1: internal compiler error: Segmentation fault 0xa283bf crash_signal ../../gcc/toplev.c:383 0x111c7b0 htab_hash_string ../../libiberty/hashtab.c:839 0x6d06bf external_ref_hasher::hash(external_ref const*) ../../gcc/dwarf2out.c:7763 0x6d06bf hash_table::find_slot(external_ref const*, insert_option) ../../gcc/hash-table.h:652 0x6d06bf lookup_external_ref
  3. That is, the comp_dir and dwo_name will appear in both places. 2) Strings can use three forms: DW_FORM_string, DW_FORM_strp or DW_FORM_GNU_str_index. 3) GCC chooses the form to use late, depending on
  4. Comment 8 Richard Biener 2015-03-31 09:35:30 UTC Well, it worked reasonably well (not ICEing) since GCC 4.8 (or 4.9) at least.

Reload to refresh your session. Used only when assembler does not support personality CFI. */ static GTY(()) rtx current_unit_personality; /* Data and reference forms for relocatable data. */ #define DW_FORM_data (DWARF_OFFSET_SIZE == 8 ? CFI = Call Frame Instruction an instruction for the DWARF2 abstract machine CIE = Common Information Entry information describing information common to one or more FDEs DIE = Debugging Information Entry Agreed.

See the GNU General Public License for more details. Comment 22 Jakub Jelinek 2014-01-16 19:16:18 UTC Author: jakub Date: Thu Jan 16 19:15:46 2014 New Revision: 206679 URL: http://gcc.gnu.org/viewcvs?rev=206679&root=gcc&view=rev Log: PR debug/54694 * gcc.target/i386/pr9771-1.c (main): Rename to... (real_main): ... Report a bug This report contains Public information Edit Everyone can see this information. fde->dw_fde_second_begin : fde->dw_fde_begin; end = second ?

R Indicates a non-default pointer encoding for FDE code pointers. Comment 2 Jason Merrill 2011-10-21 15:56:26 EDT Comment on attachment 529534 [details] gcc41-rh746405.patch That seems like a reasonable workaround for 4.1. Comment 22 Ferdinand 2015-04-16 10:14:08 UTC Now that I understand the bug, of course I notice (too late) that my way of setting -g0 wasn't taking effect in the beta tree, We must emit this label if it might be used. */ if (!do_frame && (!flag_exceptions || targetm_common.except_unwind_info (&global_options) == UI_SJLJ)) return; fnsec = function_section (current_function_decl); switch_to_section (fnsec); ASM_GENERATE_INTERNAL_LABEL (label, FUNC_BEGIN_LABEL, current_function_funcdef_no);

However, there are probably still a lot of broken compilers installed, so maybe it would be a good idea to put a workaround in gflags. Comment 12 H.J. Avoid talking about ctors and op= for PODs. I did it again with -g and got the same result: % g++ -g -c bad.cc % gflags member schuhschuh commented Mar 24, 2015 Comment #7 originally posted by schuhschuh on

the unqualified version) of this type now. (Vectors are special because the debugging info is in the cloned type itself). */ if (TREE_CODE (type) != VECTOR_TYPE) type = type_main_variant (type); if click site Already have an account? In normal compilation the block extern doesn't show up in BLOCK_VARS of > the inlined block, but rather in BLOCK_NONLOCALIZED_VARS, so we pass down NULL > for decl to gen_decl_die, so I'm also not 100% sure the issue we hit in dwarf2out is specific to lambdas or nested functions - it might very well trigger with regular C++ classes as well, just

Thanks. But hopefully there's another solution that will work as well. Or perhaps there ae more than one gcc 4.2.1? news You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3.

Comment 10 H.J. Comment 15 Markus Trippelsdorf 2015-03-31 15:58:44 UTC It really started with r219076 aka ipa-inline sreal conversion. data_section : readonly_data_section); #endif /* EH_FRAME_SECTION_NAME */ } switch_to_section (eh_frame_section); #ifdef EH_FRAME_THROUGH_COLLECT2 /* We have no special eh_frame section.

Comment 3 Brad Bell 2011-10-25 15:29:54 EDT Would it be possible to just replace some part of the compiler executable, and make that part available on the web, instead of having

Lu from comment #12) > > *** Bug 59763 has been marked as a duplicate of this bug. *** > > Are you sure this is a duplicate? I'd rather not work around this problem by DECLARING every string we define: that makes all string vars global variables (by default they're local to the file they're DEFINED), which isn't This should be suppressed for the cases that have not been converted (i.e. Or is this an odering issue somehow and the two DIEs should have been created in the opposite order?

See PR47324. */ void output_loc_sequence (dw_loc_descr_ref loc, int for_eh_or_skip) { for (; loc != NULL; loc = loc->dw_loc_next) { enum dwarf_location_atom opc = loc->dw_loc_opc; /* Output the opcode. */ if (for_eh_or_skip Comment 7 Jakub Jelinek 2015-03-30 15:55:57 UTC (In reply to Richard Biener from comment #6) > Btw, I always wondered why dwarf2out.c doesn't create such stubs itself when > it requires It is still a mystery how we avoid gimple_expand_cfg (void) { ... /* We are now committed to emitting code for this function. http://colvertgroup.com/internal-compiler/internal-compiler-error-in-dwarf2out-finish.php GCC Bugzilla – Bug54694 [4.7/4.8 Regression] internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2out.c:2387 Last modified: 2015-09-05 02:49:09 UTC Home | New | Browse | Search | [?] | Reports | Help

Comment 3 Jakub Jelinek 2015-03-30 11:17:15 UTC From quick look, the problem is that we attempt to generate DIE for a RECORD_TYPE __lambda5 in partition 2. But for some reason we do not mark it for output even though it ends up being used.