+2011-12-12 Robert Dewar <dewar@adacore.com>
+
+ * s-taprop-mingw.adb: Minor reformatting.
+
+2011-12-12 Nicolas Roche <roche@adacore.com>
+
+ * gcc-interface/Make-lang.in: Update dependencies.
+ Add gnattools4 target when building tools in canadian mode
+
+2011-12-12 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.adb (Make_VM_TSD): Complete previous
+ patch.
+
+2011-12-12 Bob Duff <duff@adacore.com>
+
+ * s-tpobop.adb: Use named notation.
+ * g-bytswa.ads, s-taprop.ads: Minor comment fix.
+
+2011-12-12 Arnaud Charlet <charlet@adacore.com>
+
+ * make.adb: Minor comment update.
+
2011-12-12 Robert Dewar <dewar@adacore.com>
* freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor
-- Alignment
- Append_To (TSD_Aggr_List,
- Make_Attribute_Reference (Loc,
- Prefix => New_Reference_To (Typ, Loc),
- Attribute_Name => Name_Alignment));
+ -- For CPP types we cannot rely on the value of 'Alignment provided
+ -- by the backend to initialize this TSD field.
+
+ if Convention (Typ) = Convention_CPP
+ or else Is_CPP_Class (Root_Type (Typ))
+ then
+ Append_To (TSD_Aggr_List,
+ Make_Integer_Literal (Loc, 0));
+ else
+ Append_To (TSD_Aggr_List,
+ Make_Attribute_Reference (Loc,
+ Prefix => New_Reference_To (Typ, Loc),
+ Attribute_Name => Name_Alignment));
+ end if;
-- HT_Link
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2010, AdaCore --
+-- Copyright (C) 2006-2011, 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- --
-- subtype String4 is String (1 .. 4);
-- function Swapped is new Byte_Swapping.Swapped4 (String4);
-- S : String4 := "ABCD";
+-- for S'Alignment use 4;
-- begin
-- Put_Line (S);
-- S := Swapped (S);
-- declare
-- type Mask is array (0 .. 15) of Boolean;
+-- for Mask'Alignment use 2;
-- for Mask'Component_Size use Boolean'Size;
-- X : Mask := (0 .. 7 => True, others => False);
-- function Swapped is new Byte_Swapping.Swapped2 (Mask);
canadian-gnattools: force
$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re
$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
+ $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools4
gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: force
$(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) \
ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \
- ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
- ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads
+ ada/treepr.ads ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb \
+ ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
+ ada/widechar.ads
ada/sem_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
Operating_Mode := Check_Semantics;
Check_Object_Consistency := False;
- -- Comment needed here, what is going on???
+ -- Except in CodePeer mode, where we do want to call bind/link
+ -- in CodePeer mode (-P switch).
+
+ -- This is testing for -gnatcC, what is that??? Also why do we
+ -- want to call bind/link in the codepeer case with -gnatc
+ -- specified, seems odd.
if Argv'Last >= 7 and then Argv (7) = 'C' then
CodePeer_Mode := True;
-- Count attribute. So we decided to remove this processing and just
-- call SwitchToThread unconditionally (leaving Do_Yield unreferenced).
- -- This means that CXD8002 does not pass on Windows, but we cannot
- -- guarantee full Annex D compliance on Windows in any case.
+ -- Moreover, CXD8002 appears to pass on Windows (although we do not
+ -- guarantee full Annex D compliance on Windows in any case).
+
+ -- What is not clear is why we now call SwitchToThread in the False
+ -- case. Other versions don't do that, is it necessary???
SwitchToThread;
end Yield;
procedure Yield (Do_Yield : Boolean := True);
pragma Inline (Yield);
- -- Yield the processor. Add the calling task to the tail of the ready
- -- queue for its active_priority. The Do_Yield argument is only used in
- -- some very rare cases very a yield should have an effect on a specific
- -- target and not on regular ones.
+ -- Yield the processor. Add the calling task to the tail of the ready queue
+ -- for its active_priority. On most platforms, Yield is a no-op if Do_Yield
+ -- is False. But on some platforms (notably VxWorks), Do_Yield is ignored.
+ -- This is only used in some very rare cases where a Yield should have an
+ -- effect on a specific target and not on regular ones.
procedure Set_Priority
(T : ST.Task_Id;
-- OS (e.g VxWorks) to give higher priority tasks a chance to run
-- (see CXD6002).
- STPO.Yield (False);
+ STPO.Yield (Do_Yield => False);
if Entry_Call.With_Abort
and then Entry_Call.Cancellation_Attempted