if (sc) CurrentScope = sc;
}
- if (! saw_code && !CurrentScope->sc_bp_opp) {
- CurrentScope->sc_bp_opp = n->on_valu;
- if (! CurrentScope->sc_start) {
+ else if (! saw_code) {
CurrentScope->sc_start = n->on_valu;
add_scope_addr(CurrentScope);
- }
+ }
+ if (!CurrentScope->sc_bp_opp
+ || CurrentScope->sc_bp_lineno > n->on_desc) {
+ CurrentScope->sc_bp_opp = n->on_valu;
+ CurrentScope->sc_bp_lineno = n->on_desc;
}
saw_code = 1;
add_position_addr(line_file->on_mptr, n);
struct symbol *sc_definedby; /* symbol defining this scope */
long sc_start; /* start address of code of this scope */
long sc_bp_opp; /* first breakpoint opportunity */
+ int sc_bp_lineno; /* linenumber belonging to this bp. */
short sc_proclevel; /* proc level of this scope */
char sc_has_activation_record;
} t_scope, *p_scope;