break;
case DW_TAG_subprogram:
addr = gdbarch_adjust_dwarf2_addr (gdbarch, pdi->lowpc + baseaddr);
- if (pdi->is_external || cu->language == language_ada)
+ if (pdi->is_external
+ || cu->language == language_ada
+ || cu->language == language_fortran)
{
/* brobecker/2007-12-26: Normally, only "external" DIEs are part
of the global scope. But in Ada, we want to be able to access
{
if (pdi->tag == DW_TAG_entry_point)
add_partial_entry_point (pdi, lowpc, highpc, set_addrmap, cu);
+ else if (pdi->tag == DW_TAG_subprogram)
+ add_partial_subprogram (pdi, lowpc, highpc, set_addrmap, cu);
pdi = pdi->die_sibling;
}
}
SYMBOL_ACLASS_INDEX (sym) = LOC_BLOCK;
attr2 = dwarf2_attr (die, DW_AT_external, cu);
if ((attr2 && (DW_UNSND (attr2) != 0))
- || cu->language == language_ada)
+ || cu->language == language_ada
+ || cu->language == language_fortran)
{
/* Subprograms marked external are stored as a global symbol.
Ada subprograms, whether marked external or not, are always
continue\r
}\r
\r
+# Test if we can set a breakpoint in a nested function\r
+gdb_breakpoint "sub_nested_outer"\r
+gdb_continue_to_breakpoint "sub_nested_outer" ".*local_int = 19"\r
+\r
# Test if we can access local and\r
# non-local variables defined one level up.\r
gdb_breakpoint [gdb_get_line_number "! BP_outer"]\r
gdb_test "up"\r
gdb_test "print index" "= 42" "print index at BP1, one frame up"\r
\r
+# Test if we can set a breakpoint in a nested function\r
+gdb_breakpoint "sub_nested_inner"\r
+gdb_continue_to_breakpoint "sub_nested_inner" ".*local_int = 17"\r
+\r
# Test if we can access local and\r
# non-local variables defined two level up.\r
gdb_breakpoint [gdb_get_line_number "! BP_inner"]\r