diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/exp_ch11.adb | 28 | ||||
-rw-r--r-- | gcc/ada/switch-b.adb | 4 |
3 files changed, 31 insertions, 12 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 42e1f1c9793..cc7bcf97e15 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2009-04-09 Bob Duff <duff@adacore.com> + + * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler): + Set Sloc of generated nodes for calls to Undefer_Aborts and + Save_Occurrence to No_Location, so the debugger ignores them and + therefore does not jump back and forth when single stepping. + +2009-04-09 Robert Dewar <dewar@adacore.com> + + * switch-b.adb: Minor reformatting. + 2009-04-09 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb, diff --git a/gcc/ada/exp_ch11.adb b/gcc/ada/exp_ch11.adb index 13da1ff83a9..a7b6fe1a905 100644 --- a/gcc/ada/exp_ch11.adb +++ b/gcc/ada/exp_ch11.adb @@ -848,14 +848,16 @@ package body Exp_Ch11 is Ent : constant Entity_Id := RTE (Proc); begin - -- If we have no Entity, then we are probably in no run time mode - -- or some weird error has occurred. In either case do nothing! + -- If we have no Entity, then we are probably in no run time mode or + -- some weird error has occurred. In either case do nothing. Note use + -- of No_Location to hide this code from the debugger, so single + -- stepping doesn't jump back and forth. if Present (Ent) then declare Call : constant Node_Id := - Make_Procedure_Call_Statement (Loc, - Name => New_Occurrence_Of (RTE (Proc), Loc), + Make_Procedure_Call_Statement (No_Location, + Name => New_Occurrence_Of (RTE (Proc), No_Location), Parameter_Associations => Args); begin @@ -1016,17 +1018,23 @@ package body Exp_Ch11 is Save : Node_Id; begin + -- Note use of No_Location to hide this code from the + -- debugger, so single stepping doesn't jump back and + -- forth. + Save := - Make_Procedure_Call_Statement (Loc, + Make_Procedure_Call_Statement (No_Location, Name => - New_Occurrence_Of (RTE (RE_Save_Occurrence), Loc), + New_Occurrence_Of (RTE (RE_Save_Occurrence), + No_Location), Parameter_Associations => New_List ( New_Occurrence_Of (Cparm, Cloc), - Make_Explicit_Dereference (Loc, - Make_Function_Call (Loc, - Name => Make_Explicit_Dereference (Loc, + Make_Explicit_Dereference (No_Location, + Make_Function_Call (No_Location, + Name => Make_Explicit_Dereference (No_Location, New_Occurrence_Of - (RTE (RE_Get_Current_Excep), Loc)))))); + (RTE (RE_Get_Current_Excep), + No_Location)))))); Mark_Rewrite_Insertion (Save); Prepend (Save, Statements (Handler)); diff --git a/gcc/ada/switch-b.adb b/gcc/ada/switch-b.adb index 82caa29f99e..0d673b7daee 100644 --- a/gcc/ada/switch-b.adb +++ b/gcc/ada/switch-b.adb @@ -402,10 +402,10 @@ package body Switch.B is case Switch_Chars (Ptr) is when 'e' => - Warning_Mode := Treat_As_Error; + Warning_Mode := Treat_As_Error; when 's' => - Warning_Mode := Suppress; + Warning_Mode := Suppress; when others => Bad_Switch (Switch_Chars); |