+2015-11-18 Arnaud Charlet <charlet@adacore.com>
+
+ * switch-c.adb (Scan_Front_End_Switches): Add a check requiring
+ -gnatc with -gnateg.
+
+2015-11-18 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch7.adb (Uninstall_Declarations): Before swapping private
+ and full views, ensure that the potential use visbility of the
+ two views is consistent.
+
+2015-11-18 Doug Rupp <rupp@adacore.com>
+
+ * s-parame-vxworks.adb: Increase default stack size for targets
+ using stack limit checking.
+
+2015-11-18 Jose Ruiz <ruiz@adacore.com>
+
+ * a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this
+ function that was added to Ada 2005 returning the processor where
+ interrupt handlers execute.
+
+2015-11-18 Tristan Gingold <gingold@adacore.com>
+
+ * exp_ch9.adb (Is_Pure_Barrier): Handle expanded component
+ declaration of a protected definition.
+
2015-11-18 Ed Falis <falis@adacore.com>
* s-soflin.adb, s-stchop-vxworks.adb: Code clean ups.
-- B o d y --
-- --
-- Copyright (C) 1991-1994, Florida State University --
--- Copyright (C) 1995-2010, AdaCore --
+-- Copyright (C) 1995-2015, AdaCore --
-- --
-- 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- --
Old_Handler := To_Ada (H);
end Exchange_Handler;
+ -------------
+ -- Get_CPU --
+ -------------
+
+ function Get_CPU
+ (Interrupt : Interrupt_ID) return System.Multiprocessors.CPU_Range
+ is
+ pragma Unreferenced (Interrupt);
+
+ begin
+ -- The underlying operating system does not indicate the processor on
+ -- which the handler for Interrupt is executed.
+
+ return System.Multiprocessors.Not_A_Specific_CPU;
+ end Get_CPU;
+
-----------------
-- Is_Attached --
-----------------
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
------------------------------------------------------------------------------
with System.Interrupts;
+with System.Multiprocessors;
with Ada.Task_Identification;
package Ada.Interrupts is
SPARK_Mode => Off,
Global => null;
+ function Get_CPU
+ (Interrupt : Interrupt_ID) return System.Multiprocessors.CPU_Range;
+
private
pragma Inline (Is_Reserved);
pragma Inline (Is_Attached);
pragma Inline (Attach_Handler);
pragma Inline (Detach_Handler);
pragma Inline (Exchange_Handler);
+ pragma Inline (Get_CPU);
end Ada.Interrupts;
E_Enumeration_Literal =>
return OK;
- when E_Variable =>
+ when E_Component |
+ E_Variable =>
+
+ -- A variable in the protected type is expanded as a
+ -- component.
+
if Is_Simple_Barrier_Name (N) then
return OK;
end if;
pragma Import (C, Default_Stack_Size, "__gl_default_stack_size");
begin
if Default_Stack_Size = -1 then
- return 20 * 1024;
+ if Stack_Check_Limits then
+ return 60 * 1024;
+ -- Extra stack to allow for 12K exception area.
+ else
+ return 20 * 1024;
+ end if;
else
return Size_Type (Default_Stack_Size);
end if;
-- If this is a private type with a full view (for example a local
-- subtype of a private type declared elsewhere), ensure that the
-- full view is also removed from visibility: it may be exposed when
- -- swapping views in an instantiation.
+ -- swapping views in an instantiation. Similarly, ensure that the
+ -- use-visibility is properly set on both views.
if Is_Type (Id) and then Present (Full_View (Id)) then
- Set_Is_Immediately_Visible (Full_View (Id), False);
+ Set_Is_Immediately_Visible (Full_View (Id), False);
+ Set_Is_Potentially_Use_Visible (Full_View (Id),
+ Is_Potentially_Use_Visible (Id));
end if;
if Is_Tagged_Type (Id) and then Ekind (Id) = E_Record_Type then
-- -gnateg (generate C code)
when 'g' =>
+ -- Special check, -gnateg must occur after -gnatc
+
+ if Operating_Mode /= Check_Semantics then
+ Osint.Fail
+ ("gnateg requires previous occurrence of -gnatc");
+ end if;
+
Generate_C_Code := True;
Ptr := Ptr + 1;