Commit 65f753a0 by Jakub Jelinek Committed by Jakub Jelinek

re PR bootstrap/41405 (Bootstrap fails on *-apple-darwin* due to revision 151815)

	PR bootstrap/41405
	* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
	add_call_src_coords_attributes, add_high_low_attributes,
	gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
	gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
	dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
	when -gdwarf-2 -gstrict-dwarf.
	(loc_list_from_tree): Likewise.  Avoid using DWARF4 additions when
	-gdwarf-[23] -gstrict-dwarf.
	(address_of_int_loc_descriptor, loc_descriptor,
	loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
	DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
	* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.

	* gfortran.dg/debug/pr37738.f: Add -gno-strict-dwarf to dg-options.
	* gfortran.dg/debug/pr35154-dwarf2.f: Likewise.
	* g++.dg/debug/dwarf2/explicit-constructor.C: Likewise.
	* g++.dg/debug/dwarf2/imported-module-2.C: Likewise.
	* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
	* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
	* g++.dg/debug/dwarf2/namespace-1.C: Likewise.
	* objc.dg/dwarf-2.m: Likewise.

From-SVN: r151978
parent 9190e0a9
...@@ -6,6 +6,20 @@ ...@@ -6,6 +6,20 @@
* reload1.c (reload): Call wrap_constant when substituting * reload1.c (reload): Call wrap_constant when substituting
reg for equiv inside of DEBUG_INSNs. reg for equiv inside of DEBUG_INSNs.
PR bootstrap/41405
* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
add_call_src_coords_attributes, add_high_low_attributes,
gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
when -gdwarf-2 -gstrict-dwarf.
(loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
-gdwarf-[23] -gstrict-dwarf.
(address_of_int_loc_descriptor, loc_descriptor,
loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
2009-09-22 Richard Guenther <rguenther@suse.de> 2009-09-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41428 PR tree-optimization/41428
......
...@@ -1472,6 +1472,14 @@ gstabs+ ...@@ -1472,6 +1472,14 @@ gstabs+
Common JoinedOrMissing Negative(gvms) Common JoinedOrMissing Negative(gvms)
Generate debug information in extended STABS format Generate debug information in extended STABS format
gno-strict-dwarf
Common RejectNegative Var(dwarf_strict,0)
Emit DWARF additions beyond selected version
gstrict-dwarf
Common Report RejectNegative Var(dwarf_strict,1) VarExists
Don't emit DWARF additions beyond selected version
gtoggle gtoggle
Common Report Var(flag_gtoggle) Common Report Var(flag_gtoggle)
Toggle debug information generation Toggle debug information generation
......
...@@ -10232,13 +10232,20 @@ base_type_die (tree type) ...@@ -10232,13 +10232,20 @@ base_type_die (tree type)
case REAL_TYPE: case REAL_TYPE:
if (DECIMAL_FLOAT_MODE_P (TYPE_MODE (type))) if (DECIMAL_FLOAT_MODE_P (TYPE_MODE (type)))
{
if (dwarf_version >= 3 || !dwarf_strict)
encoding = DW_ATE_decimal_float; encoding = DW_ATE_decimal_float;
else else
encoding = DW_ATE_lo_user;
}
else
encoding = DW_ATE_float; encoding = DW_ATE_float;
break; break;
case FIXED_POINT_TYPE: case FIXED_POINT_TYPE:
if (TYPE_UNSIGNED (type)) if (!(dwarf_version >= 3 || !dwarf_strict))
encoding = DW_ATE_lo_user;
else if (TYPE_UNSIGNED (type))
encoding = DW_ATE_unsigned_fixed; encoding = DW_ATE_unsigned_fixed;
else else
encoding = DW_ATE_signed_fixed; encoding = DW_ATE_signed_fixed;
...@@ -10894,6 +10901,9 @@ address_of_int_loc_descriptor (int size, HOST_WIDE_INT i) ...@@ -10894,6 +10901,9 @@ address_of_int_loc_descriptor (int size, HOST_WIDE_INT i)
int litsize; int litsize;
dw_loc_descr_ref loc_result = NULL; dw_loc_descr_ref loc_result = NULL;
if (!(dwarf_version >= 4 || !dwarf_strict))
return NULL;
if (i >= 0) if (i >= 0)
{ {
if (i <= 31) if (i <= 31)
...@@ -11842,7 +11852,7 @@ loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -11842,7 +11852,7 @@ loc_descriptor (rtx rtl, enum machine_mode mode,
break; break;
case CONST_DOUBLE: case CONST_DOUBLE:
if (mode != VOIDmode) if (mode != VOIDmode && (dwarf_version >= 4 || !dwarf_strict))
{ {
/* Note that a CONST_DOUBLE rtx could represent either an integer /* Note that a CONST_DOUBLE rtx could represent either an integer
or a floating-point constant. A CONST_DOUBLE is used whenever or a floating-point constant. A CONST_DOUBLE is used whenever
...@@ -11873,7 +11883,7 @@ loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -11873,7 +11883,7 @@ loc_descriptor (rtx rtl, enum machine_mode mode,
break; break;
case CONST_VECTOR: case CONST_VECTOR:
if (mode != VOIDmode) if (mode != VOIDmode && (dwarf_version >= 4 || !dwarf_strict))
{ {
unsigned int elt_size = GET_MODE_UNIT_SIZE (GET_MODE (rtl)); unsigned int elt_size = GET_MODE_UNIT_SIZE (GET_MODE (rtl));
unsigned int length = CONST_VECTOR_NUNITS (rtl); unsigned int length = CONST_VECTOR_NUNITS (rtl);
...@@ -11961,7 +11971,8 @@ loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -11961,7 +11971,8 @@ loc_descriptor (rtx rtl, enum machine_mode mode,
&& SYMBOL_REF_TLS_MODEL (rtl) != TLS_MODEL_NONE) && SYMBOL_REF_TLS_MODEL (rtl) != TLS_MODEL_NONE)
break; break;
case LABEL_REF: case LABEL_REF:
if (mode != VOIDmode && GET_MODE_SIZE (mode) == DWARF2_ADDR_SIZE) if (mode != VOIDmode && GET_MODE_SIZE (mode) == DWARF2_ADDR_SIZE
&& (dwarf_version >= 4 || !dwarf_strict))
{ {
loc_result = new_loc_descr (DW_OP_implicit_value, loc_result = new_loc_descr (DW_OP_implicit_value,
DWARF2_ADDR_SIZE, 0); DWARF2_ADDR_SIZE, 0);
...@@ -11973,7 +11984,8 @@ loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -11973,7 +11984,8 @@ loc_descriptor (rtx rtl, enum machine_mode mode,
default: default:
if (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE (rtl) == mode if (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE (rtl) == mode
&& GET_MODE_SIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE) && GET_MODE_SIZE (GET_MODE (rtl)) <= DWARF2_ADDR_SIZE
&& (dwarf_version >= 4 || !dwarf_strict))
{ {
/* Value expression. */ /* Value expression. */
loc_result = mem_loc_descriptor (rtl, VOIDmode, initialized); loc_result = mem_loc_descriptor (rtl, VOIDmode, initialized);
...@@ -12345,7 +12357,8 @@ loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev) ...@@ -12345,7 +12357,8 @@ loc_list_for_address_of_addr_expr_of_indirect_ref (tree loc, bool toplev)
if (!offset && !bitpos) if (!offset && !bitpos)
list_ret = loc_list_from_tree (TREE_OPERAND (obj, 0), toplev ? 2 : 1); list_ret = loc_list_from_tree (TREE_OPERAND (obj, 0), toplev ? 2 : 1);
else if (toplev else if (toplev
&& int_size_in_bytes (TREE_TYPE (loc)) <= DWARF2_ADDR_SIZE) && int_size_in_bytes (TREE_TYPE (loc)) <= DWARF2_ADDR_SIZE
&& (dwarf_version >= 4 || !dwarf_strict))
{ {
list_ret = loc_list_from_tree (TREE_OPERAND (obj, 0), 0); list_ret = loc_list_from_tree (TREE_OPERAND (obj, 0), 0);
if (!list_ret) if (!list_ret)
...@@ -12481,7 +12494,8 @@ loc_list_from_tree (tree loc, int want_address) ...@@ -12481,7 +12494,8 @@ loc_list_from_tree (tree loc, int want_address)
} }
else else
{ {
if (!targetm.emutls.debug_form_tls_address) if (!targetm.emutls.debug_form_tls_address
|| !(dwarf_version >= 3 || !dwarf_strict))
return 0; return 0;
loc = emutls_decl (loc); loc = emutls_decl (loc);
first_op = DW_OP_addr; first_op = DW_OP_addr;
...@@ -12884,7 +12898,8 @@ loc_list_from_tree (tree loc, int want_address) ...@@ -12884,7 +12898,8 @@ loc_list_from_tree (tree loc, int want_address)
if (!ret && !list_ret) if (!ret && !list_ret)
return 0; return 0;
if (want_address == 2 && !have_address) if (want_address == 2 && !have_address
&& (dwarf_version >= 4 || !dwarf_strict))
{ {
if (int_size_in_bytes (TREE_TYPE (loc)) > DWARF2_ADDR_SIZE) if (int_size_in_bytes (TREE_TYPE (loc)) > DWARF2_ADDR_SIZE)
{ {
...@@ -15274,7 +15289,9 @@ record_type_tag (tree type) ...@@ -15274,7 +15289,9 @@ record_type_tag (tree type)
return DW_TAG_class_type; return DW_TAG_class_type;
case RECORD_IS_INTERFACE: case RECORD_IS_INTERFACE:
if (dwarf_version >= 3 || !dwarf_strict)
return DW_TAG_interface_type; return DW_TAG_interface_type;
return DW_TAG_structure_type;
default: default:
gcc_unreachable (); gcc_unreachable ();
...@@ -15733,7 +15750,8 @@ gen_subprogram_die (tree decl, dw_die_ref context_die) ...@@ -15733,7 +15750,8 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
/* If this is an explicit function declaration then generate /* If this is an explicit function declaration then generate
a DW_AT_explicit attribute. */ a DW_AT_explicit attribute. */
if (lang_hooks.decls.function_decl_explicit_p (decl)) if (lang_hooks.decls.function_decl_explicit_p (decl)
&& (dwarf_version >= 3 || !dwarf_strict))
add_AT_flag (subr_die, DW_AT_explicit, 1); add_AT_flag (subr_die, DW_AT_explicit, 1);
/* The first time we see a member function, it is in the context of /* The first time we see a member function, it is in the context of
...@@ -16281,8 +16299,11 @@ add_call_src_coords_attributes (tree stmt, dw_die_ref die) ...@@ -16281,8 +16299,11 @@ add_call_src_coords_attributes (tree stmt, dw_die_ref die)
{ {
expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (stmt)); expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (stmt));
if (dwarf_version >= 3 || !dwarf_strict)
{
add_AT_file (die, DW_AT_call_file, lookup_filename (s.file)); add_AT_file (die, DW_AT_call_file, lookup_filename (s.file));
add_AT_unsigned (die, DW_AT_call_line, s.line); add_AT_unsigned (die, DW_AT_call_line, s.line);
}
} }
...@@ -16294,7 +16315,8 @@ add_high_low_attributes (tree stmt, dw_die_ref die) ...@@ -16294,7 +16315,8 @@ add_high_low_attributes (tree stmt, dw_die_ref die)
{ {
char label[MAX_ARTIFICIAL_LABEL_BYTES]; char label[MAX_ARTIFICIAL_LABEL_BYTES];
if (BLOCK_FRAGMENT_CHAIN (stmt)) if (BLOCK_FRAGMENT_CHAIN (stmt)
&& (dwarf_version >= 3 || !dwarf_strict))
{ {
tree chain; tree chain;
...@@ -16496,24 +16518,26 @@ gen_compile_unit_die (const char *filename) ...@@ -16496,24 +16518,26 @@ gen_compile_unit_die (const char *filename)
add_AT_string (die, DW_AT_producer, producer); add_AT_string (die, DW_AT_producer, producer);
language = DW_LANG_C89;
if (strcmp (language_string, "GNU C++") == 0) if (strcmp (language_string, "GNU C++") == 0)
language = DW_LANG_C_plus_plus; language = DW_LANG_C_plus_plus;
else if (strcmp (language_string, "GNU Ada") == 0)
language = DW_LANG_Ada95;
else if (strcmp (language_string, "GNU F77") == 0) else if (strcmp (language_string, "GNU F77") == 0)
language = DW_LANG_Fortran77; language = DW_LANG_Fortran77;
else if (strcmp (language_string, "GNU Fortran") == 0)
language = DW_LANG_Fortran95;
else if (strcmp (language_string, "GNU Pascal") == 0) else if (strcmp (language_string, "GNU Pascal") == 0)
language = DW_LANG_Pascal83; language = DW_LANG_Pascal83;
else if (dwarf_version >= 3 || !dwarf_strict)
{
if (strcmp (language_string, "GNU Ada") == 0)
language = DW_LANG_Ada95;
else if (strcmp (language_string, "GNU Fortran") == 0)
language = DW_LANG_Fortran95;
else if (strcmp (language_string, "GNU Java") == 0) else if (strcmp (language_string, "GNU Java") == 0)
language = DW_LANG_Java; language = DW_LANG_Java;
else if (strcmp (language_string, "GNU Objective-C") == 0) else if (strcmp (language_string, "GNU Objective-C") == 0)
language = DW_LANG_ObjC; language = DW_LANG_ObjC;
else if (strcmp (language_string, "GNU Objective-C++") == 0) else if (strcmp (language_string, "GNU Objective-C++") == 0)
language = DW_LANG_ObjC_plus_plus; language = DW_LANG_ObjC_plus_plus;
else }
language = DW_LANG_C89;
add_AT_unsigned (die, DW_AT_language, language); add_AT_unsigned (die, DW_AT_language, language);
return die; return die;
...@@ -16793,7 +16817,8 @@ gen_type_die_with_usage (tree type, dw_die_ref context_die, ...@@ -16793,7 +16817,8 @@ gen_type_die_with_usage (tree type, dw_die_ref context_die,
/* If this is an array type with hidden descriptor, handle it first. */ /* If this is an array type with hidden descriptor, handle it first. */
if (!TREE_ASM_WRITTEN (type) if (!TREE_ASM_WRITTEN (type)
&& lang_hooks.types.get_array_descr_info && lang_hooks.types.get_array_descr_info
&& lang_hooks.types.get_array_descr_info (type, &info)) && lang_hooks.types.get_array_descr_info (type, &info)
&& (dwarf_version >= 3 || !dwarf_strict))
{ {
gen_descr_array_type_die (type, &info, context_die); gen_descr_array_type_die (type, &info, context_die);
TREE_ASM_WRITTEN (type) = 1; TREE_ASM_WRITTEN (type) = 1;
...@@ -17177,7 +17202,11 @@ force_decl_die (tree decl) ...@@ -17177,7 +17202,11 @@ force_decl_die (tree decl)
break; break;
case NAMESPACE_DECL: case NAMESPACE_DECL:
if (dwarf_version >= 3 || !dwarf_strict)
dwarf2out_decl (decl); dwarf2out_decl (decl);
else
/* DWARF2 has neither DW_TAG_module, nor DW_TAG_namespace. */
decl_die = comp_unit_die;
break; break;
default: default:
...@@ -17487,6 +17516,7 @@ gen_decl_die (tree decl, tree origin, dw_die_ref context_die) ...@@ -17487,6 +17516,7 @@ gen_decl_die (tree decl, tree origin, dw_die_ref context_die)
case NAMESPACE_DECL: case NAMESPACE_DECL:
case IMPORTED_DECL: case IMPORTED_DECL:
if (dwarf_version >= 3 || !dwarf_strict)
gen_namespace_die (decl, context_die); gen_namespace_die (decl, context_die);
break; break;
...@@ -17585,10 +17615,15 @@ dwarf2out_imported_module_or_decl_1 (tree decl, ...@@ -17585,10 +17615,15 @@ dwarf2out_imported_module_or_decl_1 (tree decl,
} }
if (TREE_CODE (decl) == NAMESPACE_DECL) if (TREE_CODE (decl) == NAMESPACE_DECL)
{
if (dwarf_version >= 3 || !dwarf_strict)
imported_die = new_die (DW_TAG_imported_module, imported_die = new_die (DW_TAG_imported_module,
lexical_block_die, lexical_block_die,
lexical_block); lexical_block);
else else
return;
}
else
imported_die = new_die (DW_TAG_imported_declaration, imported_die = new_die (DW_TAG_imported_declaration,
lexical_block_die, lexical_block_die,
lexical_block); lexical_block);
...@@ -17628,6 +17663,10 @@ dwarf2out_imported_module_or_decl (tree decl, tree name, tree context, ...@@ -17628,6 +17663,10 @@ dwarf2out_imported_module_or_decl (tree decl, tree name, tree context,
&& TYPE_P (context) && TYPE_P (context)
&& !should_emit_struct_debug (context, DINFO_USAGE_DIR_USE)) && !should_emit_struct_debug (context, DINFO_USAGE_DIR_USE))
return; return;
if (!(dwarf_version >= 3 || !dwarf_strict))
return;
scope_die = get_context_die (context); scope_die = get_context_die (context);
if (child) if (child)
...@@ -18856,7 +18895,8 @@ dwarf2out_finish (const char *filename) ...@@ -18856,7 +18895,8 @@ dwarf2out_finish (const char *filename)
/* We can only use the low/high_pc attributes if all of the code was /* We can only use the low/high_pc attributes if all of the code was
in .text. */ in .text. */
if (!have_multiple_function_sections) if (!have_multiple_function_sections
|| !(dwarf_version >= 3 || !dwarf_strict))
{ {
add_AT_lbl_id (comp_unit_die, DW_AT_low_pc, text_section_label); add_AT_lbl_id (comp_unit_die, DW_AT_low_pc, text_section_label);
add_AT_lbl_id (comp_unit_die, DW_AT_high_pc, text_end_label); add_AT_lbl_id (comp_unit_die, DW_AT_high_pc, text_end_label);
......
...@@ -2,6 +2,16 @@ ...@@ -2,6 +2,16 @@
* gcc.dg/20090922-1.c: New test. * gcc.dg/20090922-1.c: New test.
PR bootstrap/41405
* gfortran.dg/debug/pr37738.f: Add -gno-strict-dwarf to dg-options.
* gfortran.dg/debug/pr35154-dwarf2.f: Likewise.
* g++.dg/debug/dwarf2/explicit-constructor.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-2.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
* g++.dg/debug/dwarf2/namespace-1.C: Likewise.
* objc.dg/dwarf-2.m: Likewise.
2009-09-22 Richard Guenther <rguenther@suse.de> 2009-09-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41428 PR tree-optimization/41428
......
// Contributed by Dodji Seketeli <dodji@redhat.com> // Contributed by Dodji Seketeli <dodji@redhat.com>
// Origin: PR c++ // Origin: PR c++
// { dg-do compile } // { dg-do compile }
// { dg-options "-O -g -dA" } // { dg-options "-O -g -dA -gno-strict-dwarf" }
// { dg-final { scan-assembler-times "DW_AT_explicit" 2 } } // { dg-final { scan-assembler-times "DW_AT_explicit" 2 } }
struct Foo struct Foo
......
// Contributed by Dodji Seketeli <dodji@redhat.com> // Contributed by Dodji Seketeli <dodji@redhat.com>
// Origin: PR debug/38390 // Origin: PR debug/38390
// { dg-do compile } // { dg-do compile }
// { dg-options "-g -dA" } // { dg-options "-g -dA -gno-strict-dwarf" }
// { dg-final { scan-assembler "DW_TAG_imported_module" } } // { dg-final { scan-assembler "DW_TAG_imported_module" } }
namespace A namespace A
......
// PR debug/39379 // PR debug/39379
// { dg-do compile } // { dg-do compile }
// { dg-options "-g -dA" } // { dg-options "-g -dA -gno-strict-dwarf" }
// { dg-final { scan-assembler "DW_TAG_imported_module" } } // { dg-final { scan-assembler "DW_TAG_imported_module" } }
namespace A namespace A
......
// PR debug/39379 // PR debug/39379
// { dg-do compile } // { dg-do compile }
// { dg-options "-g -dA" } // { dg-options "-g -dA -gno-strict-dwarf" }
// { dg-final { scan-assembler "DW_TAG_imported_module" } } // { dg-final { scan-assembler "DW_TAG_imported_module" } }
namespace A namespace A
......
// Contributed by Dodji Seketeli <dodji@redhat.com> // Contributed by Dodji Seketeli <dodji@redhat.com>
// Origin PR debug/41170 // Origin PR debug/41170
// { dg-options "-g -dA -fno-merge-debug-strings" } // { dg-options "-g -dA -fno-merge-debug-strings -gno-strict-dwarf" }
// //
// We want to test that there is a DW_TAG_namespace DIE DW_AT_name is set // We want to test that there is a DW_TAG_namespace DIE DW_AT_name is set
// to "not_emitted". That namespace die has a child DW_TAG_typedef DIE // to "not_emitted". That namespace die has a child DW_TAG_typedef DIE
......
...@@ -2,7 +2,7 @@ C Test program for common block debugging. G. Helffrich 11 July 2004. ...@@ -2,7 +2,7 @@ C Test program for common block debugging. G. Helffrich 11 July 2004.
C { dg-do compile } C { dg-do compile }
C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "*" } { "-gdwarf-2" } } C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "*" } { "-gdwarf-2" } }
C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "-g1" } { "" } } C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "-g1" } { "" } }
C { dg-options "-dA" } C { dg-options "-dA -gno-strict-dwarf" }
common i,j common i,j
common /label/l,m common /label/l,m
i = 1 i = 1
......
...@@ -2,7 +2,7 @@ C PR debug/37738 ...@@ -2,7 +2,7 @@ C PR debug/37738
C { dg-do compile } C { dg-do compile }
C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "*" } { "-gdwarf-2" } } C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "*" } { "-gdwarf-2" } }
C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "-g1" } { "" } } C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "-g1" } { "" } }
C { dg-options "-dA" } C { dg-options "-dA -gno-strict-dwarf" }
subroutine a subroutine a
integer*4 a_i, c_i integer*4 a_i, c_i
......
/* { dg-options "-gdwarf-2 -dA" } */ /* { dg-options "-gdwarf-2 -dA -gno-strict-dwarf" } */
/* { dg-final { scan-assembler "0x10\[^0-9a-f\].*DW_AT_language" } } */ /* { dg-final { scan-assembler "0x10\[^0-9a-f\].*DW_AT_language" } } */
/* { dg-skip-if "No Dwarf" { { *-*-aix* hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */ /* { dg-skip-if "No Dwarf" { { *-*-aix* hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */
int x; int x;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment