+2012-06-14 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch9.adb: Minor reformatting.
+
+2012-06-14 Thomas Quinot <quinot@adacore.com>
+
+ * freeze.adb (Freeze_Record_Type): Warn about useless bit order
+ specification [when there's no component clause] regardless
+ of whether the specified bit order is reversed or not.
+
+2012-06-14 Tristan Gingold <gingold@adacore.com>
+
+ * raise-gcc.c (__gnat_personality_seh0): New function.
+
+2012-06-14 Tristan Gingold <gingold@adacore.com>
+
+ * gnatname.adb (Gnatname): Make sure that dynamic table
+ argument_data is initialized.
+
+2012-06-14 Robert Dewar <dewar@adacore.com>
+
+ * sem_aux.adb: Minor code reorganization.
+
2012-06-14 Vincent Pucci <pucci@adacore.com>
* einfo.adb einfo.ads (Get_Rep_Item): Removed.
Args := New_List;
-- Priority parameter. Set to Unspecified_Priority unless there is a
- -- priority rep item, in which case we take the value from the rep item.
+ -- Priority rep item, in which case we take the value from the rep item.
if Has_Rep_Item (Ttyp, Name_Priority) then
Append_To (Args,
-- Deal with Bit_Order aspect specifying a non-default bit order
- if Reverse_Bit_Order (Rec) and then Base_Type (Rec) = Rec then
+ ADC :=
+ Get_Attribute_Definition_Clause (Rec, Attribute_Bit_Order);
+
+ if Present (ADC) and then Base_Type (Rec) = Rec then
if not Placed_Component then
- ADC :=
- Get_Attribute_Definition_Clause (Rec, Attribute_Bit_Order);
Error_Msg_N ("?bit order specification has no effect", ADC);
Error_Msg_N
("\?since no component clauses were specified", ADC);
-- Here is where we do the processing for reversed bit order
- elsif not Reverse_Storage_Order (Rec) then
+ elsif Reverse_Bit_Order (Rec)
+ and then not Reverse_Storage_Order (Rec)
+ then
Adjust_Record_For_Reverse_Bit_Order (Rec);
- -- Case where we have both a reverse Bit_Order and a corresponding
+ -- Case where we have both an explicit Bit_Order and the same
-- Scalar_Storage_Order: leave record untouched, the back-end
-- will take care of required layout conversions.
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2012, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- Initialize tables
Arguments.Set_Last (0);
- Arguments.Increment_Last;
+ declare
+ New_Arguments : Argument_Data;
+ pragma Warnings (Off, New_Arguments);
+ -- Declaring this defaulted initialized object ensures
+ -- that the new allocated component of table Arguments
+ -- is correctly initialized.
+ begin
+ Arguments.Append (New_Arguments);
+ end;
Patterns.Init (Arguments.Table (1).Directories);
Patterns.Set_Last (Arguments.Table (1).Directories, 0);
Patterns.Init (Arguments.Table (1).Name_Patterns);
#ifdef __USING_SJLJ_EXCEPTIONS__
#define PERSONALITY_FUNCTION __gnat_personality_sj0
+#elif defined(__SEH__)
+#define PERSONALITY_FUNCTION __gnat_personality_imp
#else
#define PERSONALITY_FUNCTION __gnat_personality_v0
#endif
typedef _Unwind_Action phases_arg_t;
#endif
+#ifdef __SEH__
+static
+#endif
_Unwind_Reason_Code
PERSONALITY_FUNCTION (version_arg_t, phases_arg_t,
_Unwind_Exception_Class, _Unwind_Exception *,
#endif /* __USING_SJLJ_EXCEPTIONS__ */
+#ifdef __SEH__
+EXCEPTION_DISPOSITION
+__gnat_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame,
+ PCONTEXT ms_orig_context,
+ PDISPATCHER_CONTEXT ms_disp)
+{
+ return _GCC_specific_handler (ms_exc, this_frame, ms_orig_context,
+ ms_disp, __gnat_personality_imp);
+}
+#endif /* SEH */
#else
/* ! IN_RTS */
or else (Nam = Name_Priority
and then Chars (N) = Name_Interrupt_Priority))
then
- if Check_Parents then
- return N;
-
- elsif Entity (N) = E then
+ if Check_Parents or else Entity (N) = E then
return N;
end if;
-- This node represents the parent type of type E (if any)
begin
- if No (Par) then
- return N;
-
- elsif not Present_In_Rep_Item (Par, N) then
+ if No (Par) or else not Present_In_Rep_Item (Par, N) then
return N;
end if;
end;