Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
4b437c6b
Commit
4b437c6b
authored
Apr 06, 2007
by
Arnaud Charlet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resync
From-SVN: r123607
parent
87ace727
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1776 additions
and
0 deletions
+1776
-0
gcc/ada/ChangeLog
+1776
-0
No files found.
gcc/ada/ChangeLog
View file @
4b437c6b
2007
-
04
-
06
Javier
Miranda
<
miranda
@
adacore
.
com
>
Matt
Heaney
<
heaney
@
adacore
.
com
>
Robert
Dewar
<
dewar
@
adacore
.
com
>
a
-
coprnu
.
ads
,
a
-
cohata
.
ads
,
a
-
chtgop
.
ads
,
a
-
chtgop
.
adb
,
a
-
cgcaso
.
ads
,
a
-
cgarso
.
ads
,
a
-
secain
.
ads
,
a
-
slcain
.
ads
,
a
-
shcain
.
ads
,
a
-
chtgke
.
ads
,
a
-
chtgke
.
ads
,
a
-
coprnu
.
ads
,
a
-
contai
.
ads
,
a
-
chtgke
.
ads
,
a
-
chtgke
.
adb
,
a
-
stwiha
.
ads
,
a
-
strhas
.
ads
,
a
-
lfztio
.
ads
,
a
-
liztio
.
ads
,
a
-
llfzti
.
ads
,
a
-
llizti
.
ads
,
a
-
sfztio
.
ads
,
a
-
siztio
.
ads
,
a
-
ssizti
.
ads
,
a
-
stzfix
.
ads
,
a
-
stzhas
.
ads
,
a
-
szuzha
.
ads
,
a
-
tiunio
.
ads
,
a
-
wwunio
.
ads
,
a
-
ztcoio
.
ads
,
a
-
ztinio
.
ads
,
a
-
zttest
.
ads
,
a
-
zzunio
.
ads
,
a
-
astaco
.
ads
,
a
-
charac
.
ads
,
a
-
chlat1
.
ads
,
ada
.
ads
,
a
-
dynpri
.
ads
,
a
-
flteio
.
ads
,
a
-
fwteio
.
ads
,
a
-
inteio
.
ads
,
a
-
intnam
.
ads
,
a
-
ioexce
.
ads
,
a
-
iwteio
.
ads
,
a
-
lfteio
.
ads
,
a
-
lfwtio
.
ads
,
a
-
liteio
.
ads
,
a
-
liwtio
.
ads
,
a
-
llftio
.
ads
,
a
-
llfwti
.
ads
,
a
-
llitio
.
ads
,
a
-
lliwti
.
ads
,
a
-
ncelfu
.
ads
,
a
-
ngcefu
.
ads
,
a
-
ngelfu
.
ads
,
a
-
nlcefu
.
ads
,
a
-
nlcoty
.
ads
,
a
-
nlelfu
.
ads
,
a
-
nllcef
.
ads
,
a
-
nllcty
.
ads
,
a
-
nllefu
.
ads
,
a
-
nscefu
.
ads
,
a
-
nscoty
.
ads
,
a
-
nselfu
.
ads
,
a
-
nucoty
.
ads
,
a
-
nuelfu
.
ads
,
a
-
numeri
.
ads
,
a
-
sfteio
.
ads
,
a
-
sfwtio
.
ads
,
a
-
siteio
.
ads
,
a
-
siwtio
.
ads
,
a
-
ssitio
.
ads
,
a
-
ssiwti
.
ads
,
a
-
storio
.
ads
,
a
-
strfix
.
ads
,
a
-
string
.
ads
,
a
-
stwifi
.
ads
,
a
-
titest
.
ads
,
a
-
unccon
.
ads
,
a
-
uncdea
.
ads
,
a
-
wtcoio
.
ads
,
a
-
wtinio
.
ads
,
a
-
wttest
.
ads
,
calendar
.
ads
,
directio
.
ads
,
i
-
c
.
ads
,
ioexcept
.
ads
,
machcode
.
ads
,
sequenio
.
ads
,
text_io
.
ads
,
unchconv
.
ads
,
unchdeal
.
ads
,
a
-
widcha
.
ads
,
a
-
zchara
.
ads
,
a
-
stboha
.
ads
,
a
-
stfiha
.
ads
,
a
-
coteio
.
ads
,
a
-
envvar
.
ads
,
a
-
lcteio
.
ads
,
a
-
llctio
.
ads
,
a
-
scteio
.
ads
,
a
-
swbwha
.
ads
,
a
-
swfwha
.
ads
,
a
-
szbzha
.
ads
,
a
-
szfzha
.
ads
,
a
-
tiboio
.
ads
,
a
-
wwboio
.
ads
,
a
-
zzboio
.
ads
,
a
-
dispat
.
ads
,
a
-
tgdico
.
ads
,
expander
.
adb
,
g
-
socket
.
ads
,
par
-
labl
.
adb
,
sinput
-
c
.
adb
,
s
-
tarest
.
ads
,
s
-
stchop
.
ads
,
g
-
expect
-
vms
.
adb
,
s
-
taprop
-
lynxos
.
adb
,
s
-
taprop
-
tru64
.
adb
,
s
-
taprop
-
irix
.
adb
,
s
-
taprop
-
hpux
-
dce
.
adb
,
s
-
traceb
-
hpux
.
adb
,
s
-
taprop
-
linux
.
adb
,
s
-
taprop
-
dummy
.
adb
,
s
-
osprim
-
unix
.
adb
,
s
-
osprim
-
solaris
.
adb
,
s
-
taprop
-
solaris
.
adb
,
s
-
taprop
-
vms
.
adb
,
s
-
osprim
-
mingw
.
adb
,
s
-
taprop
-
mingw
.
adb
,
s
-
osprim
-
posix
.
adb
,
s
-
taprop
-
posix
.
adb
,
a
-
exexpr
-
gcc
.
adb
,
a
-
ststio
.
adb
,
a
-
ststio
.
ads
,
a
-
textio
.
adb
,
a
-
textio
.
ads
,
a
-
tideau
.
adb
,
a
-
tideau
.
ads
,
a
-
witeio
.
adb
,
a
-
witeio
.
ads
,
a
-
wtdeau
.
adb
,
a
-
wtdeau
.
ads
,
g
-
calend
.
adb
,
g
-
calend
.
ads
,
g
-
dirope
.
adb
,
g
-
expect
.
ads
,
gnatchop
.
adb
,
g
-
spipat
.
adb
,
g
-
spipat
.
ads
,
s
-
direio
.
adb
,
s
-
direio
.
ads
,
s
-
fatgen
.
adb
,
s
-
fatgen
.
ads
,
s
-
parint
.
adb
,
s
-
sequio
.
adb
,
s
-
sequio
.
ads
,
s
-
taprop
.
ads
,
s
-
valdec
.
adb
,
s
-
valdec
.
ads
,
s
-
valint
.
adb
,
s
-
valint
.
ads
,
s
-
vallld
.
adb
,
s
-
vallld
.
ads
,
s
-
vallli
.
adb
,
s
-
vallli
.
ads
,
s
-
valllu
.
adb
,
s
-
valllu
.
ads
,
s
-
valrea
.
adb
,
s
-
valrea
.
ads
,
s
-
valuns
.
adb
,
s
-
valuns
.
ads
,
s
-
valuti
.
adb
,
s
-
valuti
.
ads
,
xref_lib
.
adb
,
s
-
stchop
.
adb
,
i
-
vxwork
-
x86
.
ads
,
a
-
crbtgo
.
ads
,
a
-
crbtgo
.
adb
,
a
-
coorse
.
ads
,
a
-
coorse
.
adb
,
a
-
cohama
.
ads
,
a
-
cohama
.
adb
,
a
-
ciorse
.
ads
,
a
-
ciorse
.
adb
,
a
-
cihama
.
ads
,
a
-
cihama
.
adb
,
a
-
chtgop
.
ads
,
a
-
chtgop
.
ads
,
a
-
coormu
.
adb
,
a
-
ciormu
.
adb
,
a
-
cihase
.
adb
,
a
-
cihase
.
ads
,
a
-
cohase
.
adb
,
a
-
cohase
.
ads
,
a
-
swuwha
.
ads
,
a
-
ciormu
.
ads
,
a
-
coormu
.
ads
,
a
-
rbtgso
.
ads
,
a
-
stunha
.
ads
,
a
-
ciorma
.
adb
,
a
-
coorma
.
adb
,
a
-
ztdeau
.
adb
,
a
-
ztdeau
.
ads
,
a
-
ztexio
.
adb
,
a
-
ztexio
.
ads
:
Addition
of
null
-
exclusion
to
anonymous
access
types
.
Update
documentation
.
Minor
rewording
.
2007
-
04
-
06
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
system
-
linux
-
ia64
.
ads
,
system
-
freebsd
-
x86
.
ads
,
system
-
lynxos
-
ppc
.
ads
,
system
-
lynxos
-
x86
.
ads
,
system
-
linux
-
x86_64
.
ads
,
system
-
tru64
.
ads
,
system
-
vxworks
-
sparcv9
.
ads
,
system
-
solaris
-
x86
.
ads
,
system
-
irix
-
o32
.
ads
,
system
-
irix
-
n32
.
ads
,
system
-
hpux
.
ads
,
system
-
vxworks
-
m68k
.
ads
,
system
-
linux
-
x86
.
ads
,
system
-
vxworks
-
mips
.
ads
,
system
-
interix
.
ads
,
system
-
solaris
-
sparc
.
ads
,
system
-
solaris
-
sparcv9
.
ads
,
system
-
vms
.
ads
,
system
-
mingw
.
ads
,
system
-
vms
-
zcx
.
ads
,
system
-
vxworks
-
ppc
.
ads
,
system
-
vxworks
-
alpha
.
ads
,
system
-
vms_64
.
ads
,
system
-
darwin
-
ppc
.
ads
,
system
-
vxworks
-
x86
.
ads
,
system
-
linux
-
ppc
.
ads
,
system
-
linux
-
hppa
.
ads
,
system
-
hpux
-
ia64
.
ads
,
targparm
.
adb
,
targparm
.
ads
(
Functions_Return_By_DSP_On_Target
):
Removed
*
system
.
ads
:
Move
Functions_Return_By_DSP
to
obsolete
section
,
kept
for
bootstrap
purposes
only
.
2007
-
04
-
06
Arnaud
Charlet
<
charlet
@
adacore
.
com
>
*
s
-
osinte
-
lynxos
-
3.
ads
,
s
-
osinte
-
hpux
.
ads
,
s
-
osinte
-
solaris
-
posix
.
ads
,
s
-
osinte
-
freebsd
.
ads
,
s
-
osinte
-
aix
.
ads
,
s
-
osinte
-
darwin
.
ads
,
s
-
taprop
-
posix
.
adb
(
Create_Task
):
Fix
handling
of
Task_Info
.
(
PTHREAD_SCOPE_PROCESS
,
PTHREAD_SCOPE_SYSTEM
):
New
constants
.
2007
-
04
-
06
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
a
-
except
.
adb
,
a
-
except
.
ads
,
a
-
except
-
2005.
ads
,
a
-
except
-
2005.
adb
(
Local_Raise
):
New
dummy
procedure
called
when
a
raise
is
converted
to
a
local
goto
.
Used
for
debugger
to
detect
that
the
exception
is
raised
.
*
debug
.
adb
:
Document
new
d
.
g
flag
(
expand
local
raise
statements
to
gotos
even
if
pragma
Restriction
(
No_Exception_Propagation
)
is
not
set
)
*
exp_sel
.
adb
:
Use
Make_Implicit_Exception_Handler
*
exp_ch11
.
adb
(
Expand_Exception_Handlers
):
Use
new
flag
-
gnatw
.
x
to
suppress
warnings
for
unused
handlers
.
(
Warn_If_No_Propagation
):
Use
new
flag
-
gnatw
.
x
to
suppress
warnings
for
raise
statements
not
handled
locally
.
(
Get_RT_Exception_Entity
):
New
function
(
Get_Local_Call_Entity
):
New
function
(
Find_Local_Handler
):
New
function
(
Warn_If_No_Propagation
):
New
procedure
(
Expand_At_End_Handler
):
Call
Make_Implicit_Handler
(
Expand_Exception_Handlers
):
Major
additions
to
deal
with
local
handlers
(
Expand_N_Raise_Constraint_Error
,
Expand_N_Raise_Program_Error
,
Expand_N_Raise_Storage_Error
,
(
Expand_N_Raise_Statement
):
Add
handling
for
local
raise
*
exp_ch11
.
ads
(
Get_RT_Exception_Entity
):
New
function
(
Get_Local_Call_Entity
):
New
function
*
gnatbind
.
adb
(
Restriction_List
):
Add
No_Exception_Propagation
to
list
of
restrictions
that
the
binder
will
never
suggest
adding
.
*
par
-
ch11
.
adb
(
P_Exception_Handler
):
Set
Local_Raise_Statements
field
to
No_Elist
.
*
restrict
.
adb
(
Check_Restricted_Unit
):
GNAT
.
Current_Exception
may
not
be
with
'ed in the presence of pragma Restriction
(No_Exception_Propagation).
* sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
* sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
parameter, then the handler is not a suitable target for a local raise,
and this is a violation of restriction No_Exception_Propagation.
(Analyze_Handled_Statements): Analyze choice parameters in exception
handlers before analyzing statement sequence (needed for proper
detection of local raise statements).
(Analyze_Raise_Statement): Reraise statement is a violation of the
No_Exception_Propagation restriction.
* s-rident.ads: Add new restriction No_Exception_Propagation
* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
function, like Make_Exception_Handler but sets Local_Raise_Statements
to No_List.
(Add_Unique_Serial_Number): Deal with case where this is called during
processing of configuration pragmas.
2007-04-06 Thomas Quinot <quinot@adacore.com>
Pat Rogers <rogers@adacore.com>
Pascal Obry <obry@adacore.com>
* g-stsifd-sockets.adb: New file.
* g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
g-socthi-vms.adb: Move signalling
fd management to a nested package, so that they can conveniently be
moved to a subunit that is shared across Windows, VMS, and VxWorks
(Ada implementation) or completed with imported bodies from socket.c
(UNIX case).
(Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
subprograms.
(Check_Selector): Use Read_Signalling_Fd to read and discard data from
the signalling file descriptor.
(Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
signalling file descriptor.
(Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
instead of creating a pair of sockets for signalling here.
* g-socthi.adb: Ditto.
Set the runtime process to ignore SIGPIPEs on platforms that support
neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
* g-socthi-mingw.adb: Ditto.
(WS_Version): Use Windows 2.2.
Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
* g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
* Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
added GNAT byte swapping facility
Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
* g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
* socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
New subprograms.
(__gnat_create_signalling_fds): New subprogram.
Set the runtime process to ignore SIGPIPEs on platforms that support
neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
Vincent Celier <celier@adacore.com>
* a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
New version of Ada.Calendar which supports the new upper bound of Ada
time (2399-12-31 86_399.999999999).
The following modifications have been made to the package:
- New representation of time as count of nanoseconds since the start of
Ada time (1901-1-1 0.0).
- Target independent Split and Time_Of routines which service both
Ada 95 and Ada 2005 code.
- Target independent interface to the Ada 2005 children of Calendar.
- Integrated leap seconds into Ada 95 and Ada 2005 mode.
- Handling of non-leap centenial years.
- Updated clock function.
- Updated arithmetic and comparison operators.
* a-caldel.adb (To_Duration): Add call to target independent routine in
Ada.Calendar to handle the conversion of time to duration.
* sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
(UTC Offset).
If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
set off to 0.
(__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
targets do not have a natural time zone, GMT is used as a default.
(__gnat_get_task_options): New.
* a-direct.adb (Modification_Time): Add with and use clauses for
Ada.Calendar and Ada.
Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
since it is no longer needed.
(Duration_To_Time): Removed.
(OS_Time_To_Long_Integer): Removed.
(Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
Formatting Time_Of routines which automatically handle time zones,
buffer periods and leap seconds.
* a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
target independent routines in Ada.Calendar.
* a-calfor.ads, a-calfor.adb:
Code cleanup and addition of validity checks in various routines.
(Day_Of_Week, Split, Time_Of): Add call to target independent routine in
Ada.Calendar.
* a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
independent routine in Ada.Calendar.
2007-04-06 Olivier Hainque <hainque@adacore.com>
* adaint.c:
(convert_addresses): Adjust prototype and dummy definition to expect an
extra file_name argument.
* gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
filling the now expected file_name argument with the appropriate
argv[0] expansion.
(__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
(tracebk): Array of void * instead of char *, corresponding to what
convert_addresses expects.
(exename): New static global, to hold the executable file name to be
used in all convert_addresses invocations.
(gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
change.
(__gnat_gmem_a2l_initialize): Resolve exename.
(__gnat_convert_addresses): Use exename as the convert_addresses
file_name argument.
* g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
"convert_addresses", now expecting a filename argument. Import the
necessary entities to compute the filename to use and pass it to
convert_addresses.
2007-04-06 Matt Gingell <gingell@adacore.com>
* system-aix.ads: Back out previous change.
(Functions_Return_By_DSP): Removed
2007-04-06 Pascal Obry <obry@adacore.com>
* s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
or the monotonic used by Ada.Real_Time) to compute the sleep duration
on Windows.
2007-04-06 Jose Ruiz <ruiz@adacore.com>
* s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
function. Its value changes in different VxWorks versions, and it is
now handled by the function __gnat_get_task_options.
* s-taprop-vxworks.adb (Create_Task): Call the function
__gnat_get_task_options to get the required options for creating a task.
2007-04-06 Pascal Obry <obry@adacore.com>
Thomas Quinot <quinot@adacore.com>
* adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
dealing with filename.
(__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
filename from a standard string to a wide-string depending on the
encoding value.
(__gnat_freopen): Idem.
(__gnat_current_time): New function (wrapper for time(3) standard C
function).
* g-os_lib.ads (Current_Time): New function. Returns the current
system time as an OS_Time value.
* s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
(Monotonic_Clock): Same.
2007-04-06 Quentin Ochem <ochem@adacore.com>
* ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
not on a natural.
(Scan_ALI): Cancel the xref line if there has been a reading ALI error.
2007-04-06 Jose Ruiz <ruiz@adacore.com>
* a-retide.adb: Add elaboration code to ensure that the tasking run
time is initialized when using delay operations even when no task is
created.
2007-04-06 Javier Miranda <miranda@adacore.com>
* a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
component Num_Prim_Ops.
(Set_Num_Prim_Ops): Removed.
Remove all the assertions because all the routines of this
package are inline always.
(Get_Offset_Index): Add support to primary dispatch tables.
Move the documentation about the dispatch table to a-tags.ads
(Set_External_Tag): Removed
(Inherit_TSD): Removed.
(Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
moved to a-tags.ads
(Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
of the TSD field "Table" because this field has been renamed to
"Ifaces_Table".
(Inherit_CPP_DT): Removed.
(K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
declarations have been moved to a-tags.ads
(Check_Size): Removed.
(Expanded_Name): Updated to get access to the new field of TSD
containing the address of the expanded name.
(Get_Access_Level/Set_Access_Level): Removed.
(Get_Predefined_Prim_Op_Address): Removed.
(Set_Predefined_Prim_Op_Address): Removed.
(Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
(Get_Remotely_Callable/Set_Remotely_Callable): Removed.
(Set_Expanded_Name): Removed.
(Inherit_DT): Removed.
(Inherit_CPP_DT): Removed.
(Set_RC_Offset): Removed.
(Set_TSD): Removed.
(Base_Address): New function that displaces "this" to point to the base
of the object (that is, to point to the primary tag of the object).
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
anonymous access component, do not create a master_id if type already
has one, as may happen if the type is a subcomponent of a packed array
type.
(Build_Init_Procedure, Component_Needs_Simple_Initialization,
Initialize_Tag): Remove code associated with the old CPP pragmas.
CPP_Virtual and CPP_Vtable are no longer supported.
(Build_Offset_To_Top_Internal): Add support for concurrent record types
(Build_Offset_To_Top_Functions): Add support for concurrent record types
(Freeze_Record_Type): Remove call to
Init_Predefined_Interface_Primitives.
(Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
code required to initialize the tags of the secondary dispatch tables.
This leaves the algoritm more clear.
(Init_Secondary_Tags): Add support for concurrent record types
(Make_Predefined_Primitive_Specs): Code cleanup.
(Predefined_Primitive_Bodies): Code cleanup.
(Build_Master_Renaming): New local subprogram.
(Expand_N_Full_Type_Declaration): Build the master_id associated with
anonymous access to task type components.
(Expand_N_Subtype_Indication): The bounds of a range constraint in a
subtype indication are resolved during analysis, and must not be done
here.
(Stream_Operation_OK): Check Restriction_Active before RTE_Available.
2007-04-06 Geert Bosch <bosch@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
Bob Duff <duff@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
for conversion of a Float_Type'
Truncation
to
integer
.
*
exp_attr
.
adb
(
Is_Inline_Floating_Point_Attribute
):
New
function
to
check
if
a
node
is
an
attribute
that
can
be
handled
directly
by
the
back
end
.
(
Expand_N_Attribute_Reference
):
Suppress
expansion
of
floating
-
point
attributes
that
can
be
handled
directly
by
the
back
end
.
(
Expand_N_Attribute_Reference
,
case
'Access and '
Unchecked_Access
):
use
new
predicate
Is_Access_Protected_Subprogram_Type
.
(
Expand_N_Attribute_Reference
,
case
'Write): The reference is legal for
and Unchecked_Union if it is generated as part of the default Output
procedure for a type with default discriminants.
(Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
if we are compiling under restriction No_Dispatching_Calls.
(Constrained): Use Underlying_Type, in case the type is private without
discriminants, but the full type has discriminants.
(Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
call to Build_Get_Access_Level.
(Expand_N_Attribute_Reference): The use of '
Address
with
class
-
wide
interface
objects
requires
a
call
to
the
run
-
time
subprogram
that
returns
the
base
address
of
the
object
.
(
Valid_Conversion
):
Improve
error
message
on
illegal
attempt
to
store
an
anonymous
access
to
subprogram
value
into
a
record
component
.
*
sem_res
.
adb
(
Resolve_Equality_Op
):
Detect
ambiguity
for
"X'Access =
null"
.
(
Simplify_Type_Conversion
):
New
procedure
that
performs
simplification
of
Int_Type
(
Float_Type
'Truncation (X)).
(Resolve_Type_Conversion): Call above procedure after resolving operand
and before performing checks. This replaces the existing ineffective
code in Exp_Ch4.
(Set_String_Literal_Subtype): When creating the internal static lower
bound subtype for a string literal, use a newly created copy of the
subtree representing the lower bound.
(Resolve_Call): Exclude build-in-place function calls from transient
scope treatment. Update comments to describe this exception.
(Resolve_Equality_Op): In case of dispatching call check violation of
restriction No_Dispatching_Calls.
(Resolve_Call): If the call returns an array, the context imposes the
component type of the array, and the function has one non-defaulted
parameter, rewrite the call as the indexing of a call with a single
parameter, to handle an Ada 2005 syntactic ambiguity for calls written
in prefix form.
(Resolve_Actuals): If an actual is an allocator for an access parameter,
the master of the created object is the innermost enclosing statement.
(Remove_Conversions): For a binary operator, check if type of second
formal is numeric, to check if an abstract interpretation is present
in the case of exponentiation as well.
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
* atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
copying a parameter list in a call, set properly the First_Named_Formal
and Next_Named_Formal fields in the new list and in the enclosing call.
(Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
names, to ease typing in the debugger. Improve comments.
(Watch_Node): New variable, intended to be set in the debugger.
(New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
called when the watched node is created.
(New_Node_Debugging_Output): Combined version of local procedures
New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
with a parameter so that conditional breakpoints like "if Node = 12345"
work.
(New_Node, New_Entity): Call the global New_Node_Debugging_Output.
Add Elist1 function
2007-04-06 Thomas Quinot <quinot@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* checks.ads, checks.adb (Selected_Range_Checks): No range check is
required for a conversion between two access-to-unconstrained-array
types.
(Expr_Known_Valid): Validity checks do not apply to discriminants, but
to discriminant constraints on discriminant objects. This rule must
apply as well to discriminants of protected types in private components.
(Null_Exclusion_Static_Checks): If No_Initialization is set on an
object of a null-excluding access type then don'
t
require
the
the
object
declaration
to
have
an
expression
and
don
't emit a
run-time check.
2007-04-06 Arnaud Charlet <charlet@adacore.com>
Eric Botcazou <botcazou@adacore.com>
* gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
and made constant.
* comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn'
t
carry
any
.
*
fe
.
h
(
Compiler_Abort
):
Add
third
parameter
.
*
misc
.
c
(
internal_error_function
):
Build
third
argument
from
current
input
location
and
pass
it
to
Compiler_Abort
.
2007
-
04
-
06
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
*
cstand
.
adb
(
Create_Standard
):
When
the
target
's storage unit size is
greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
Standard_String.
2007-04-06 Nicolas Roche <roche@adacore.com>
* cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
absolute path can have the following form: device:/a/b. In this case
'
/
' should be inserted between the path and the filename.
2007-04-06 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <botcazou@adacore.com>
* decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
VAR_DECL to a CONST_DECL we make for a public constant when we know the
corresponding definition has created the so made visible variable.
Handle anonymous access to protected subprogram.
(gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
object with an address clause volatile. Re-enable original fix.
<E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
too.
(gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
associated with either the Equivalent or Root type, instead of the
naked type node.
(gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
subtree for every field of a global record type.
(gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
discriminants, invoke again variable_size on its newly computed sizes.
2007-04-06 Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
* einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
(Next_Component_Or_Discriminant): New function and procedure
(First_Index, First_Literal, Master_Id,
Set_First_Index, Set_First_Literal, Set_Master_Id):
Add missing Ekind assertions.
(Is_Access_Protected_Subprogram_Type): New predicate.
(Has_RACW): New entity flag, set on package entities to indicate that
the package contains the declaration of a remote accecss-to-classwide
type.
(E_Return_Statement): This node type has the Finalization_Chain_Entity
attribute, in case the result type has controlled parts.
(Requires_Overriding): Add this new flag, because "requires
overriding" is subtly different from "is abstract" (see AI-228).
(Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
Is_Abstract_Type. Make sure these are called only when appropriate.
(Has_Pragma_Unreferenced_Objects): New flag
* exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
class-wide, the tag of the right-hand side must be an exact match, not
an ancestor of that of the object on left-hand side.
(Move_Activation_Chain): New procedure to create the call to
System.Tasking.Stages.Move_Activation_Chain.
(Expand_N_Extended_Return_Statement): Generate code to call
System.Finalization_Implementation.Move_Final_List at the end of a
return statement if the function'
s
result
type
has
controlled
parts
.
Move
asserts
to
Build_In_Place_Formal
.
(
Move_Final_List
):
New
function
to
create
the
call
statement
.
(
Expand_N_Assignment_Statement
):
In
case
of
assignment
to
a
class
-
wide
tagged
type
,
replace
generation
of
call
to
the
run
-
time
subprogram
CW_Membership
by
call
to
Build_CW_Membership
.
(
Expand_N_Return_Statement
):
Replace
generation
of
call
to
the
run
-
time
subprogram
Get_Access_Level
by
call
to
Build_Get_Access_Level
.
(
Expand_N_Simple_Function_Return
):
Replace
generation
of
call
to
the
run
-
time
subprogram
Get_Access_Level
by
call
to
Build_Get_Access_Level
.
*
exp_ch6
.
ads
,
exp_ch6
.
adb
(
Expand_Call
):
Use
new
predicate
Is_Access_Protected_Subprogram_Type
,
to
handle
both
named
and
anonymous
access
to
protected
operations
.
(
Add_Task_Actuals_To_Build_In_Place_Call
):
New
procedure
to
add
the
master
and
chain
actual
parameters
to
a
build
-
in
-
place
function
call
involving
tasks
.
(
BIP_Formal_Suffix
):
Add
new
enumeration
literals
to
complete
the
case
statement
.
(
Make_Build_In_Place_Call_In_Allocator
,
Make_Build_In_Place_Call_In_Anonymous_Context
,
Make_Build_In_Place_Call_In_Assignment
,
Make_Build_In_Place_Call_In_Object_Declaration
):
Call
Add_Task_Actuals_To_Build_In_Place_Call
with
the
appropriate
master
.
(
Expand_Inlined_Call
):
If
the
subprogram
is
a
null
procedure
,
or
a
stubbed
procedure
with
a
null
body
,
replace
the
call
with
a
null
statement
without
using
the
full
inlining
machinery
,
for
efficiency
and
to
avoid
invalid
values
in
source
file
table
entries
.
*
exp_ch8
.
adb
(
Expand_N_Object_Renaming_Declaration
):
Add
support
for
renamings
of
calls
to
build
-
in
-
place
functions
.
*
rtsfind
.
adb
(
RTE_Record_Component_Available
):
New
subprogram
that
provides
the
functionality
of
RTE_Available
to
record
components
.
(
RTU_Entity
):
The
function
Entity
has
been
renamed
to
RTU_Entity
to
avoid
undesired
overloading
.
(
Entity
):
New
subprogram
that
returns
the
entity
for
the
referened
unit
.
If
this
unit
has
not
been
loaded
,
it
returns
Empty
.
(
RE_Activation_Chain_Access
,
RE_Move_Activation_Chain
):
New
entities
.
Remove
no
longer
used
entities
.
(
RE_Finalizable_Ptr_Ptr
,
RE_Move_Final_List
):
New
entities
.
(
RE_Type_Specific_Data
):
New
entity
.
(
RE_Move_Any_Value
):
New
entity
.
(
RE_TA_A
,
RE_Get_Any_Type
):
New
entities
.
(
RE_Access_Level
,
RE_Dispatch_Table
,
E_Default_Prim_Op_Count
,
RE_Prims_Ptr
,
RE_RC_Offset
,
RE_Remotely_Callable
,
RE_DT_Typeinfo_Ptr_Size
,
RE_Cstring_Ptr
,
RE_DT_Expanded_Name
):
Added
.
(
Entity
):
New
subprogram
that
returns
the
entity
for
the
referened
unit
.
If
this
unit
has
not
been
loaded
,
it
returns
Empty
.
(
RTE
):
Addition
of
a
new
formal
that
extends
the
search
to
the
scopes
of
the
record
types
found
in
the
chain
of
the
package
.
*
sem_ch6
.
ads
,
sem_ch6
.
adb
(
Check_Overriding_Indicator
):
Print
"abstract subprograms must be visible"
message
,
whether
or
not
the
type
is
an
interface
;
that
is
,
remove
the
special
case
for
interface
types
.
(
Analyze_Function_Return
):
Remove
error
message
"return of task objects
is not yet implemented"
because
this
is
now
implemented
.
(
Create_Extra_Formals
):
Add
the
extra
master
and
activation
chain
formals
in
case
the
result
type
has
tasks
.
Remove
error
message
"return of limited controlled objects is not yet
implemented"
.
(
Create_Extra_Formals
):
Add
the
extra
caller
's finalization list formal
in case the result type has controlled parts.
(Process_Formals): In case of access formal types there is no need
to continue with the analysis of the formals if we already notified
errors.
(Check_Overriding_Indicator): Add code to check overriding of predefined
operators.
(Create_Extra_Formals): Prevent creation of useless Extra_Constrained
flags for formals that do not require them,.
(Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
hidden entity is use visible or directly visible.
(Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
New_Overloaded_Entity): Split Is_Abstract flag into
Is_Abstract_Subprogram and Is_Abstract_Type.
* s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
a return statement'
s
finalization
list
to
the
caller
's list, used for
build-in-place functions with result type with controlled parts.
Remove no longer used entities.
* s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
longer needed, because the full type is now limited, and therefore a
pass-by-reference type.
(Foreign_Task_Level): New constant.
* s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
move tasks from the activation chain belonging to a return statement to
the one passed in by the caller, and update the master to the one
passed in by the caller.
(Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
of unactivated tasks, so we don'
t
kill
the
ones
that
are
being
returned
by
a
build
-
in
-
place
function
.
(
Create_Task
):
Ignore
AI
-
280
for
foreign
threads
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Robert
Dewar
<
dewar
@
adacore
.
com
>
Bob
Duff
<
duff
@
adacore
.
com
>
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
*
errout
.
adb
(
Unwind_Internal_Type
):
Use
predicate
Is_Access__Protected_Subprogram_Type
.
*
freeze
.
adb
(
Size_Known
):
Use
First
/
Next_Component_Or_Discriminant
(
Freeze_Entity
,
packed
array
case
):
Do
not
override
explicitly
set
alignment
and
size
clauses
.
(
Freeze_Entity
):
An
entity
declared
in
an
outer
scope
can
be
frozen
if
the
enclosing
subprogram
is
a
child
unit
body
that
acts
as
a
spec
.
(
Freeze_Entity
):
Use
new
predicate
Is_Access_Protected_Subprogram_Type
.
(
Freeze_Record_Type
):
New
Ada
2005
processing
for
reverse
bit
order
Remove
all
code
for
DSP
option
*
layout
.
adb
(
Layout_Record_Type
):
Use
First
/
Next_Component_Or_Discriminant
(
Layout_Type
):
Use
new
predicate
Is_Access_Protected_Subprogram_Type
,
to
handle
properly
the
anonymous
access
case
.
*
sem_attr
.
adb
(
Build_Access_Object_Type
):
Use
E_Access_Attribute_Type
for
all
access
attributes
,
because
overload
resolution
should
work
the
same
for
'Access, '
Unchecked_Access
,
and
'Unrestricted_Access. This
causes the error message for the ambiguous "X'
Access
=
Y
'Access" and
"X'
Unrestricted_Access
=
Y
'Access" and so forth to match.
(Resolve_Attribute, case '
Access
):
Remove
use
of
Original_Access_Type
,
now
that
anonymous
access
to
protected
operations
have
their
own
kind
.
(
Resolve_Attribute
):
In
case
of
dispatching
call
check
the
violation
of
restriction
No_Dispatching_Calls
.
(
Check_Array_Type
):
Check
new
-
gnatyA
array
index
style
option
*
sem_ch3
.
ads
,
sem_ch3
.
adb
(
Derived_Type_Declaration
):
Reject
an
attempt
to
derive
from
a
synchronized
tagged
type
.
(
Analyze_Type_Declaration
):
If
there
is
a
incomplete
tagged
view
of
the
type
,
inherit
the
class
-
wide
type
already
created
,
because
it
may
already
have
been
used
in
a
self
-
referential
anonymous
access
component
.
(
Mentions_T
):
Recognize
self
-
referential
anonymous
access
components
that
use
(
a
subtype
of
)
the
class
-
wide
type
of
the
enclosing
type
.
(
Build_Derived_Record_Type
):
Add
earlier
setting
of
Is_Tagged_Type
.
Pass
Derived_Type
for
Prev
formal
on
call
to
Check_Anonymous_Access_Components
rather
than
Empty
.
(
Make_Incomplete_Type_Declaration
):
Add
test
for
case
where
the
type
has
a
record
extension
in
deciding
whether
to
create
a
class
-
wide
type
,
rather
than
just
checking
Tagged_Present
.
(
Replace_Anonymous_Access_To_Protected_Subprogram
):
Procedure
applies
to
stand
-
alone
object
declarations
as
well
as
component
declarations
.
(
Array_Type_Declaration
):
Initialize
Packed_Array_Type
to
Empty
,
to
prevent
accidental
overwriting
when
enclosing
package
appears
in
a
limited_with_clause
.
(
Array_Type_Declaration
):
If
the
component
type
is
an
anonymous
access
,
the
associated_node
for
the
itype
is
the
type
declaration
itself
.
(
Add_Interface_Tag_Components
):
Modified
to
support
concurrent
types
with
abstract
interfaces
.
(
Check_Abstract_Interfaces
):
New
subprogram
that
verifies
the
ARM
rules
3.9.4
(
15
/
2
),
9.1
(
9.
d
/
2
)
and
9.4
(
11.
d
/
2
).
(
Build_Derived_Record_Type
):
Add
call
to
Analyze_Interface_Declaration
to
complete
the
decoration
of
synchronized
interface
types
.
Add
also
a
call
to
Check_Abstract_Interfaces
to
verify
the
ARM
rules
.
(
Derive_Interface_Subprograms
):
Modified
to
support
concurrent
types
with
abstract
interfaces
.
(
Analyze_Subtype_Indication
):
Resolve
the
range
with
the
given
subtype
mark
,
rather
than
delaying
the
full
resolution
depending
on
context
.
(
Analyze_Component_Declaration
,
Analyze_Interface_Declaration
,
Analyze_Object_Declaration
,
Analyze_Subtype_Declaration
,
Array_Type_Declaration
,
Build_Derived_Record_Type
,
Build_Discriminated_Subtype
,
Check_Abstract_Overriding
,
Check_Completion
,
Derive_Interface_Subprograms
,
Derive_Subprogram
,
Make_Class_Wide_Type
,
Process_Full_View
,
Record_Type_Declaration
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
Make
sure
these
are
called
only
when
appropriate
.
(
Copy_And_Swap
):
Copy
Has_Unreferenced_Objects
flag
from
full
type
to
private
type
.
(
Analyze_Subtype_Declaration
):
For
an
access
subtype
declaration
,
create
an
itype
reference
for
the
anonymous
designated
subtype
,
to
prevent
scope
anonmalies
in
gigi
.
(
Build_Itype_Reference
):
New
utility
,
to
simplify
construction
of
such
references
.
2007
-
04
-
06
Vincent
Celier
<
celier
@
adacore
.
com
>
*
errutil
.
adb
(
Initialize
):
Initialize
warnings
table
,
if
all
warnings
are
suppressed
,
supply
an
initial
dummy
entry
covering
all
possible
source
locations
.
*
make
.
adb
(
Scan_Make_Arg
):
Reject
options
that
should
start
with
"--"
and
start
with
only
one
,
such
as
"-RTS=none"
.
(
Collect_Arguments
):
Do
not
check
for
sources
outside
of
projects
.
Do
not
collect
arguments
if
project
is
externally
built
.
(
Compile_Sources
):
Do
nothing
,
not
even
check
if
the
source
is
up
to
date
,
if
its
project
is
externally
built
.
(
Compile
):
When
compiling
a
predefined
source
,
add
-
gnatpg
as
the
second
switch
,
after
-
c
.
(
Compile_Sources
):
Allow
compilation
of
Annex
J
renames
without
-
a
(
Is_In_Object_Directory
):
Check
if
the
ALI
file
is
in
the
object
even
if
there
is
no
project
extension
.
(
Create_Binder_Mapping_File
):
Only
put
a
unit
in
the
mapping
file
for
gnatbind
if
the
ALI
file
effectively
exists
.
(
Initialize
):
Add
the
directory
where
gnatmake
is
invoked
in
front
of
the
path
if
it
is
invoked
from
a
bin
directory
,
even
without
directory
information
,
so
that
the
correct
GNAT
tools
will
be
used
when
spawned
without
directory
information
.
*
makeusg
.
adb
:
Change
switch
-
S
to
-
eS
Add
lines
for
new
switches
-
we
,
-
wn
and
-
ws
Add
line
for
new
switch
-
p
*
prj
-
proc
.
adb
(
Process
):
Set
Success
to
False
when
Warning_Mode
is
Treat_As_Error
and
there
are
warnings
.
*
switch
-
m
.
ads
,
switch
-
m
.
adb
(
Normalize_Compiler_Switches
):
Do
not
skip
-
gnatww
Change
gnatmake
switch
-
S
to
-
eS
(
Scan_Make_Switches
):
Code
reorganisation
.
Process
separately
multi
character
switches
and
single
character
switches
.
(
Scan_Make_Switches
):
New
Boolean
out
parameter
Success
.
Set
Success
to
False
when
switch
is
not
recognized
by
gnatmake
.
(
Scan_Make_Switches
):
Set
Setup_Projects
True
when
-
p
or
--
create
-
missing
-
dirs
is
specified
.
*
fname
.
adb
(
Is_Predefined_File_Name
):
Return
True
for
annex
J
renamings
Calendar
,
Machine_Code
,
Unchecked_Conversion
and
Unchecked_Deallocation
only
when
Renamings_Included
is
True
.
*
par
.
adb
:
Allow
library
units
Calendar
,
Machine_Code
,
Unchecked_Conversion
and
Unchecked_Deallocation
to
be
recompiled
even
when
-
gnatg
is
not
specified
.
(
P_Interface_Type_Definition
):
Remove
the
formal
Is_Synchronized
because
there
is
no
need
to
generate
always
a
record_definition_node
in
case
of
synchronized
interface
types
.
(
SIS_Entry_Active
):
Initialize
global
variable
to
False
(
P_Null_Exclusion
):
For
AI
-
447
:
Add
parameter
Allow_Anonymous_In_95
to
indicate
cases
where
AI
-
447
says
"not null"
is
legal
.
*
makeutl
.
ads
,
makeutil
.
adb
(
Executable_Prefix_Path
):
New
function
*
makegpr
.
adb
(
Check_Compilation_Needed
):
Take
into
account
dependency
files
with
with
several
lines
starting
with
the
object
fileb
name
.
(
Scan_Arg
):
Set
Setup_Projects
True
when
-
p
or
--
create
-
missing
-
dirs
is
specified
.
(
Initialize
):
Add
the
directory
where
gprmake
is
invoked
in
front
of
the
path
,
if
it
is
invoked
from
a
bin
directory
or
with
directory
information
,
so
that
the
correct
GNAT
tools
will
be
used
when
invoked
directly
.
(
Check_Compilation_Needed
):
Process
correctly
backslashes
on
Windows
.
*
vms_data
.
ads
:
Update
switches
/
qualifiers
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Thomas
Quinot
<
quinot
@
adacore
.
com
>
*
exp_aggr
.
adb
:
If
the
array
component
is
a
discriminated
record
,
the
array
aggregate
is
non
-
static
even
if
the
component
is
given
by
an
aggregate
with
static
components
.
(
Expand_Record_Aggregate
):
Use
First
/
Next_Component_Or_Discriminant
(
Convert_Aggr_In_Allocator
):
If
the
allocator
is
for
an
access
discriminant
and
the
type
is
controlled
.
do
not
place
on
a
finalization
list
at
this
point
.
The
proper
list
will
be
determined
from
the
enclosing
object
.
(
Build_Record_Aggr_Code
):
If
aggregate
has
box
-
initialized
components
,
initialize
record
controller
if
needed
,
before
the
components
,
to
ensure
that
they
are
properly
finalized
.
(
Build_Record_Aggr_Code
):
For
the
case
of
an
array
component
that
has
a
corresponding
array
aggregate
in
the
record
aggregate
,
perform
sliding
if
required
.
2007
-
04
-
06
Javier
Miranda
<
miranda
@
adacore
.
com
>
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
*
exp_ch13
.
adb
(
Expand_External_Tag_Definition
):
Replace
call
to
the
run
-
time
subprogram
Set_External_Tag
by
call
to
Build_Set_External_Tag
.
*
exp_ch4
.
adb
(
Expand_Allocator_Expression
):
Don
't perform a run-time
accessibility on class-wide allocators if the allocator occurs at the
same scope level as the allocator'
s
type
.
The
check
is
guaranteed
to
succeed
in
that
case
,
even
when
the
expression
originates
from
a
parameter
of
the
containing
subprogram
.
(
Expand_N_Op_Eq
):
Do
nothing
in
case
of
dispatching
call
if
compiling
under
No_Dispatching_Calls
restriction
.
During
the
semantic
analysis
we
already
notified
such
violation
.
(
Tagged_Membership
):
Constant
folding
.
There
is
no
need
to
check
the
tag
at
run
-
time
if
the
type
of
the
right
operand
is
non
class
-
wide
abstract
.
Replace
call
to
Is_Ancestor
by
call
to
Is_Parent
to
support
concurrent
types
with
interface
types
.
(
Expand_N_Allocator
):
Add
an
assertion
associated
with
the
generation
of
the
master_id
.
(
Expand_N_Slice
):
Do
not
enable
range
check
to
nodes
associated
with
the
frontend
expansion
of
the
dispatch
table
.
(
Is_Local_Access_Discriminant
):
Subsidiary
function
to
Expand_N_Allocator
.
(
Tagged_Membership
):
Replace
generation
of
call
to
the
run
-
time
subprogram
CW_Membership
by
call
to
Build_CW_Membership
.
(
Expand_Allocator_Expression
):
Replace
generation
of
call
to
the
run
-
time
subprogram
Get_Access_Level
by
call
to
Build_Get_Access_Level
.
*
exp_disp
.
ads
,
exp_disp
.
adb
(
Make_DT
):
Code
reorganization
to
initialize
most
the
TSD
components
by
means
of
an
aggregate
.
Modify
the
declaration
of
the
object
containing
the
TSD
because
we
now
expand
code
that
has
a
higher
level
of
abstraction
.
The
TSD
has
a
discriminant
containing
the
Inheritance
Depth
Level
,
value
that
is
used
in
the
membership
test
but
also
to
fix
the
size
of
the
table
of
ancestors
.
(
Expand_Interface_Conversion
):
Insert
function
body
at
the
closest
place
to
the
conversion
expression
,
to
prevent
access
-
before
-
elaboration
errors
in
the
backend
.
Code
improved
to
reduce
the
size
of
the
dispatch
table
if
compiling
under
restriction
No_Dispatching_Calls
plus
code
cleanup
.
Code
reorganization
plus
removal
of
calls
to
Set_Num_Prim_Ops
(
Make_Secondary_DT
):
Remove
call
to
Set_Num_Prim_Ops
.
(
Expand_Dispatching_Call
):
Minor
code
reorganization
plus
addition
of
code
to
return
immediately
if
compiling
under
No_Dispatching_Calls
restriction
.
(
Set_All_DT_Position
):
Remove
code
associated
with
the
old
CPP
pragmas
.
CPP_Virtual
and
CPP_Vtable
are
no
longer
supported
.
(
Expand_Interface_Conversion
):
Add
missing
support
for
interface
type
derivations
.
(
Expand_Interface_Actuals
):
Replace
calls
to
Is_Ancestor
by
calls
to
Is_Parent
to
support
concurrent
types
with
interfaces
.
(
Init_Predefined_Interface_Primitives
):
Removed
.
(
Make_Secondary_DT
):
Modified
to
support
concurrent
record
types
.
(
Set_All_DT_Position
):
Modified
to
support
concurrent
record
types
.
(
Ada_Actions
,
Action_Is_Proc
,
Action_Nb_Arg
):
Remove
entries
associated
with
Get_External_Tag
,
Inherit_TSD
,
Set_External_Tag
.
(
Ada_Actions
,
Action_Is_Proc
,
Action_Nb_Arg
):
Remove
entry
associated
with
CW_Membership
.
(
Ada_Actions
,
Action_Is_Proc
,
Action_Nb_Arg
):
Remove
entries
associated
with
Get_Access_Level
,
Get_Predefined_Prim_Op_Address
,
Get_Prim_Op_Address
Get_RC_Offset
,
Get_Remotely_Callable
,
Inherit_DT
,
Set_Access_Level
,
Set_Expanded_Name
,
Set_Predefined_Prim_Op_Address
,
Set_Prim_Op_Address
,
Set_RC_Offset
,
Set_Remotely_Callable
,
Set_TSD
.
(
Expand_Dispatching_Call
):
Replace
generation
of
call
to
the
run
-
time
subprograms
Get_Predefined_Prim_Op_Address
and
Get_Prim_Op_Address
by
calls
to
Build_Get_Predefined_Prim_Op_Address
,
and
Build_Get_Prim_Op_
Address
.
(
Fill_DT_Entry
,
Fill_Secondary_DT_Entry
):
Replace
generation
of
call
to
the
run
-
time
subprograms
Set_Predefined_Prim_Op_Address
and
Set_Prim_
Op_Address
by
calls
to
Build_Set_Predefined_Prim_Op_Address
,
and
Build_Set_Prim_Op_Address
.
(
Get_Remotely_Callable
):
Subprogram
removed
.
(
Init_Predefined_Interface_Primitives
):
Replace
generation
of
call
to
the
run
-
time
subprograms
Inherit_DT
by
call
to
Build_Inherit_Predefined_
Prims
.
*
sem_elab
.
adb
(
Set_Elaboration_Constraint
):
Replace
the
call
to
First
(
Parameter_Associations
())
with
the
call
to
First_Actual
that
returns
an
actual
parameter
expression
for
both
named
and
positional
associations
.
*
sem_disp
.
adb
(
Check_Dispatching_Call
):
In
case
of
dispatching
call
check
violation
of
restriction
No_Dispatching_Calls
.
(
Check_Controlling_Type
):
A
formal
of
a
tagged
incomplete
type
is
a
controlling
argument
.
*
exp_util
.
ads
,
exp_util
.
adb
(
Type_May_Have_Bit_Aligned_Components
):
Use
First
/
Next_Component_Or_Discriminant
(
Insert_Actions
):
Add
entries
for
new
N_Push
and
N_Pop
nodes
(
Find_Implemented_Interface
):
Removed
.
All
the
calls
to
this
subprogram
specify
Any_Limited_Interface
,
and
this
functionality
is
already
provided
by
the
function
Has_Abstract_Interfaces
.
(
Find_Interface
,
Find_Interface_Tag
,
Find_Interface_ADT
):
Modified
to
support
concurrent
types
implementing
interfaces
.
(
Find_Implemented_Interface
):
Removed
.
All
the
calls
to
this
subprogram
specify
kind
Any_Limited_Interface
,
and
this
functionality
is
already
provided
by
the
function
Has_Abstract_Interfaces
.
(
Remove_Side_Effects
):
replace
Controlled_Type
by
CW_Or_Controlled_Type
whenever
the
issue
is
related
to
using
or
not
the
secondary
stack
.
*
par
-
ch12
.
adb
(
P_Formal_Type_Definition
):
Update
calls
to
P_Interface_Type_Definition
to
fulfill
the
new
interface
(
the
formal
Is_Synchronized
is
no
longer
required
).
*
Make
-
lang
.
in
(
GNAT_ADA_OBJS
):
Addition
of
exp_atag
.
o
Update
dependencies
.
*
exp_atag
.
ads
,
exp_atag
.
adb
:
New
file
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Bob
Duff
<
duff
@
adacore
.
com
>
Cyrille
Comar
<
comar
@
adacore
.
com
>
*
exp_ch7
.
ads
,
exp_ch7
.
adb
(
Find_Final_List
):
If
the
access
type
is
anonymous
,
use
finalization
list
of
enclosing
dynamic
scope
.
(
Expand_N_Package_Declaration
):
For
a
library
package
declaration
without
a
corresponding
body
,
generate
RACW
subprogram
bodies
in
the
spec
(
just
as
we
do
for
the
task
activation
call
).
(
Convert_View
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
Make
sure
these
are
called
only
when
appropriate
.
Remove
all
code
for
DSP
option
(
CW_Or_Controlled_Type
):
new
subprogram
.
2007
-
04
-
06
Eric
Botcazou
<
botcazou
@
adacore
.
com
>
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
*
exp_ch9
.
ads
,
exp_ch9
.
adb
(
Family_Offset
):
Add
new
'Cap'
boolean
parameter
.
If
it
is
set
to
true
,
return
a
result
capped
according
to
the
global
upper
bound
for
the
index
of
an
entry
family
.
(
Family_Size
):
Add
new
'Cap'
boolean
parameter
.
Pass
it
to
Family_Offset
(
Build_Find_Body_Index
):
Adjust
for
above
change
.
(
Entry_Index_Expression
):
Likewise
.
(
Is_Potentially_Large_Family
):
New
function
extracted
from
...
(
Collect_Entry_Families
):
...
here
.
Call
it
to
detect
whether
the
family
is
potentially
large
.
(
Build_Entry_Count_Expression
):
If
the
family
is
potentially
large
,
call
Family_Size
with
'Cap'
set
to
true
.
(
Expand_N_Protected_Type_Declaration
,
Expand_N_Protected_Body
):
Generate
a
protected
version
of
an
operation
declared
in
the
private
part
of
a
protected
object
,
because
they
may
be
invoked
through
a
callback
.
(
Set_Privals
):
If
the
type
of
a
private
component
is
an
anonymous
access
type
,
do
not
create
a
new
itype
for
each
protected
body
.
If
the
body
of
a
protected
operation
creates
controlled
types
(
including
allocators
for
class
-
widetypes
),
the
body
of
the
corresponding
protected
subprogram
must
include
a
finalization
list
.
(
Build_Activation_Chain_Entity
):
Build
the
chain
entity
for
extended
return
statements
.
(
Type_Conformant_Parameters
):
Use
common
predicate
Conforming_Types
to
determine
whether
operation
overrides
an
inherited
primitive
.
(
Build_Wrapper_Spec
):
Add
code
to
examine
the
parents
while
looking
for
a
possible
overriding
candidate
.
(
Build_Simple_Entry_Call
):
Set
No_Initialization
on
the
object
used
to
hold
an
actual
parameter
value
since
its
initialization
is
separated
from
the
the
declaration
.
Prevents
errors
on
null
-
excluding
access
formals
.
2007
-
04
-
06
Thomas
Quinot
<
quinot
@
adacore
.
com
>
*
exp_dist
.
ads
,
exp_dist
.
adb
(
Build_To_Any_Call
,
Build_From_Any_Call
):
Do
an
Unchecked_Conversion
to
handle
the
passage
from
the
Underlying
Type
to
the
Base
Type
when
calling
Build_To_Any_Call
and
Build_From_Any_Call
.
(
Build_Actual_Object_Declaration
):
Set
Object
's Ekind to E_Variable or
E_Constant, depending upon Variable formal.
(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
parameter that requires an extra constrained parameter, declare
temporary for actual as a variable, not a constant.
(Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
the unit being compiled is the one that contains the stub type.
Change primitive operation name for the RACW associated with a RAS
from Call to _Call so it cannot clash with any legal identifier.
(PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
Is_RAS.
(Append_RACW_Bodies): New subprogram.
(Expand_Receiving_Stubs_Bodies): Pass a '
Stmts
' list to
Add_Receiving_Stubs_To_Declarations functions.
When expanding a package body, this list correspond to the
statements in the HSS at the end of the pacakge.
When expanding a package spec, this list correspond to the
spec declarations.
(Add_Receiving_Stubs_To_Declarations): Append the function
registering the receiving stubs at the end of the '
Stmts
' list.
(RCI_Package_Locator): Pass the new Version generic formal when
instantiating a RCI_Locator package.
(Build_From_Any_Function): To compute the High bound for an
unconstrained array actual, we add the Low bound with the length.
Thus we must convert the low bound and the length to an appropriate
type before doing the sum.
(Build_Subprogram_Receiving_Stubs, PolyORB):
* Retrieve the extra formals parameters at the
end of the parameter stream.
* Use Move_Any_Value to write back out parameters
after executing the request as it is more efficient
than Copy_Any_Value.
* Build the any containing Extra Formals with the
appropriate typecode.
(PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
empty Component_List.
(Build_Actual_Object_Declaration): New subprogram. Build and insert into
the tree the declaration for an object that serves as actual parameter
in server-side stubs.
(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
PolyORB_Support.Build_Subprogram_Receiving_Stubs):
Use Build_Actual_Object_Declaration to prepare the actuals.
(Add_Parameter_To_NVList): Set the parameter mode to In for
Extra Constrained Parameters.
(Build_General_Calling_Stubs): Set the parameter type to boolean for
Extra Constrained parameters.
(Build_To_Any_Function, Build_From_Any_Function,
Built_TypeCode_Function): When Typ is implicit, call the correct
function with the first not implicit parent type.
(TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
(FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
typecode from the Etype. Therefore we retrieve the correct typecode
with a call to Get_Any_Type.
(Copy_Specification): Do controlling formal type substitution based on
Is_Controlling_Formal flag, instead of caller-provided object type.
(Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
a RACW primitive operation, we might get a subprogram declaration for an
ancestor of the RACW designated type (not for the designated type
itself), in the case where this operation is inherited. In this case we
have no easy means of determining the original tagged type for which
the primitive was declared, so instead we now rely on
Copy_Specification to use the Is_Controlling_Formal flag to determine
which formals require type substitution.
2007-04-06 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
GNAT.Current_Exception are not allowed if pragma Restrictions
(No_Exception_Propagation) is set and in any case make the associated
handler unsuitable as a target for a local raise statement.
(Expand_Dispatching_Constructor_Call): Replace generation of call to the
run-time subprogram CW_Membership by call to Build_CW_Membership.
(Expand_Dispatching_Constructor_Call): If the dispatching tag is given
by a function call, a temporary must be created before expanding the
Constructor_Call itself, to prevent out-of-order elaboration in the
back-end when stack checking is enabled..
2007-04-06 Ed Schonberg <schonberg@adacore.com>
* exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
result are the bounds of the left operand, not the right.
2007-04-06 Ed Schonberg <schonberg@adacore.com>
* exp_strm.adb
(Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
discriminant defaults.
(Build_Record_Or_Elementary_Output_Procedure): Ditto.
(Make_Component_List_Attributes): Ditto.
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
an association with a box as providing a value even though the
initialization procedure for the type is not available.
(Resolve_Record_Aggregate): Check that a choice of an association with a
box corresponds to a component of the type.
(Resolve_Record_Aggregate): Split Is_Abstract flag into
Is_Abstract_Subprogram and Is_Abstract_Type.
* exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
assert.
* inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
called only when appropriate.
2007-04-06 Olivier Hainque <hainque@adacore.com>
* g-alleve.ads (Low Level Vector type definitions): Map each to the
associated vector view instead of all to the unsigned char view.
* g-altcon.adb (Generic_Conversions): New internal generic package,
offering facilities for all the Vector/View conversion routines
implemented by this unit.
(To_View/To_Vector - all versions): Reimplemented in a systematic
manner, using the internal Generic_Conversions facilities.
2007-04-06 Pascal Obry <obry@adacore.com>
* g-arrspl.adb (Free) [Element_Access]: New routine to free the source
string.
(Create): Free the source string before storing the new one.
2007-04-06 Vincent Celier <celier@adacore.com>
* g-debpoo.adb (Validity): New package with a complete new
implementation of subprograms Is_Valid and Set_Valid.
(Is_Valid): Move to local package Validity
(Set_Valid): Move to local package Validity
2007-04-06 Arnaud Charlet <charlet@adacore.com>
* g-expect.adb (Get_Command_Output): When expanding the output buffer
we must ensure that there is enough place for the new data we are going
to copy in.
2007-04-06 Thomas Quinot <quinot@adacore.com>
* g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
computation.
2007-04-06 Jose Ruiz <ruiz@adacore.com>
Vincent Celier <celier@adacore.com>
* gnatcmd.adb (B_Start): Add prefix of binder generated file.
(Stack_String): Add this String that contains the name of the Stack
package in the project file.
(Packages_To_Check_By_Stack): Add this list that contains the packages
to be checked by gnatstack, which are the naming and the stack packages.
(Check_Files): If no .ci files were specified for gnatstack we add all
the .ci files belonging to the projects, including binder generated
files.
(Non_VMS_Usage): Document that gnatstack accept project file switches.
(GNATCmd): Update the B_Start variable if we are in a VMS environment.
Add gnatstack to the list of commands that use project file related
switches, and get the single attribute Switches from the stack package
in a project file when calling gnatstack. Parse the -U flag for
processing files belonging to all projects in the project tree.
Remove all processing for command Setup
* prj-attr.adb: Add new package Stack with single attribute Switches
* vms_conv.ads (Command_Type): Add command Stack.
Move to body declarations that are only used in the body: types Item_Id,
Translation_Type, Item_Ptr, Item and its subtypes.
* vms_conv.adb: (Initialize): Add data for new command Stack.
Add declarations moved from the spec: types Item_Id, Translation_Type,
Item_Ptr, Item and its subtypes.
(Cargs_Buffer): New table
(Cargs): New Boolean global variable
(Process_Buffer): New procedure to create arguments
(Place): Put character in table Buffer or Cargs_Buffer depending on the
value of Cargs.
(Process_Argument): Set Cargs when processing qualifiers for GNAT
COMPILE
(VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
empty, for table Cargs_Buffer.
(Initialize): Remove component Setup in Command_List
2007-04-06 Vincent Celier <celier@adacore.com>
* gprep.adb (Process_Files.Process_One_File): Use full file name when
issuing pragma Source_Reference.
2007-04-06 Emmanuel Briot <briot@adacore.com>
* g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
[[:xdigit:]] character class.
Also raise an exception when an invalid character class is used.
2007-04-06 Pascal Obry <obry@adacore.com>
* i-cstrea.ads: (fopen): Add encoding parameter.
(freopen): Idem.
Change reference from a-sysdep.c to sysdep.c in comment.
Update copyright notice.
This set of patch add support for the encoding form parameter.
* mingw32.h (S2WSU): New macro to convert from a string to a
wide-string using the UTF-8 encoding. The S2WS macro supports now only
standard 8bits encoding.
(WS2SU): As above but converting from wide-sring to string.
This is needed as it is necessary to have access to both versions in the
runtime for the form parameter encoding support.
This set of patch add support for the encoding form parameter.
(S2WS): Improve implementation to handle cases where the filename is not
UTF-8 encoded. In this case we default to using the current code page
for the conversion.
* s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
the constants defined in adaint.h.
(fopen): Add encoding parameter.
(freopen): Idem.
* s-ficobl.ads (AFCB): Add Encoding field to record the filename
encoding. This is needed for the Reset routine (freopen low level-call).
* s-fileio.adb (Open): Decode encoding form parameter and set the
corresponding encoding value into AFCB structure.
(Reset): Pass the encoding value to freopen.
(Close): Move the call to Lock_Task to the beginning of the procedure.
2007-04-06 Geert Bosch <bosch@adacore.com>
Robert Dewar <dewar@adacore.com>
* i-fortra.ads: Add Double_Complex type.
* impunit.adb: (Is_Known_Unit): New function
Add Gnat.Byte_Swapping
Add GNAT.SHA1
Add new Ada 2005 units
Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
* impunit.ads (Is_Known_Unit): New function
* a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
New files.
* Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
* a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
2007-04-06 Eric Botcazou <botcazou@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
__gnat_adjust_context_for_raise.
(__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
implementation of floating point operations as native x86 targets.
So the FPU should be initialized in the same way using finit. Fix
floating point operations accuracy issues.
(__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
member in struct sigaction, so as to avoid warning for incompatible
pointer types.
2007-04-06 Serguei Rybin <rybin@adacore.com>
* lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
switches from previously loaded tree
2007-04-06 Thomas Quinot <quinot@adacore.com>
* lib-writ.adb (Write_With_Lines): Factor duplicated code between the
cases where a given dependency has a body or not.
(Write_With_File_Names): New subprogram, common code for the two cases
above.
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* lib-xref.ads, lib-xref.adb:
Modify the loop that collects type references, to include interface
types that the type implements. List each of these interfaces when
building the entry for the type.
(Generate_Definition): Initialize component Def and Typ of new entry
in table Xrefs, to avoid to have these components unitialized.
(Output_References): Split Is_Abstract flag into
Is_Abstract_Subprogram and Is_Abstract_Type.
(Generate_Reference): Add barrier to do not generate the warning
associated with Ada 2005 entities with entities generated by the
expander.
2007-04-06 Robert Dewar <dewar@adacore.com>
Arnaud Charlet <charlet@adacore.com>
Vincent Celier <celier@adacore.com>
* gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
Update '
Exception
Handling
Control
' chapter which was outdated.
Minor fix to documentation of -gnatwq
Remove section "Adapting the Run Time to a New C++ Compiler" because
it is now obsolete.
Add passage on need of -nostart-files in some non-ada-main cases.
Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
Update documentation about Interfacing with C++
Add documentation for new gnatmake switch -p
Add missing protocol part in URLs.
Document -gnatyA
Document pragma Compile_Time_Error
Add documentation for Object_Size indicating that stand alone
objects can have a larger size in some cases.
Add node for GNAT.Byte_Swapping, GNAT.SHA1
Update reference to the Ravenscar profile.
Document pragma Unreferenced_Objects
* gnat-style.texi: Fix typo
2007-04-06 Vincent Celier <celier@adacore.com>
* mlib.adb (Building_Library): Only output "building a library..." in
verbose mode
* mlib-prj.adb (Build_Library): Only output lists of object and ALI
files in verbose mode.
* mlib-utl.adb (Ar): Only output the first object files when not in
verbose mode.
(Gcc): Do not display all the object files if not in verbose mode, only
the first one.
2007-04-06 Robert Dewar <dewar@adacore.com>
* namet.ads, namet.adb (wn): Improve this debugging routine. Calling
it no longer destroys the contents of Name_Buffer or Name_Len and
non-standard and invalid names are handled better.
(Get_Decoded_Name_String): Improve performance by using
Name_Has_No_Encodings flag in the name table.
(Is_Valid_Name): New function to determine whether a Name_Id is valid.
Used for debugging printouts.
2007-04-06 Robert Dewar <dewar@adacore.com>
Javier Miranda <miranda@adacore.com>
Bob Duff <duff@adacore.com>
* par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
there is no need to generate always a record_definition_node in case
of synchronized interface types.
(P_Type_Declaration): Update calls to P_Interface_Type_Definition.
(P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
illegal in Ada 95, in cases where it is legal. Change the warnings to
errors in other cases. Don'
t
give
the
error
unless
the
"not null"
parses
properly
.
Correct
the
source
position
at
which
the
error
occurs
.
(
P_Known_Discriminant_Part_Opt
):
Pass
Allow_Anonymous_In_95
=>
True
to
P_Null_Exclusion
,
to
suppress
"not null"
warnings
.
(
P_Identifier_Declarations
):
Code
cleanup
.
Removed
unrequired
label
and
associated
goto
statements
.
*
par
-
endh
.
adb
(
Pop_End_Context
):
Allow
more
flexibility
in
placement
of
END
RECORD
*
scans
.
ads
(
Type_Token_Location
):
New
flag
*
par
-
ch6
.
adb
(
P_Mode
):
Check
specifically
for
case
of
IN
ACCESS
(
P_Formal_Part
):
Pass
Allow_Anonymous_In_95
=>
True
to
P_Null_Exclusion
,
to
suppress
"not null"
warnings
.
2007
-
04
-
06
Robert
Dewar
<
dewar
@
adacore
.
com
>
Javier
Miranda
<
miranda
@
adacore
.
com
>
Bob
Duff
<
duff
@
adacore
.
com
>
Vincent
Celier
<
celier
@
adacore
.
com
>
*
par
-
prag
.
adb
(
Prag
):
Add
dummy
entry
for
pragma
Compile_Time_Error
(
Extensions_Allowed
):
No
longer
sets
Ada_Version
Entry
for
pragma
Unreferenced_Objects
*
sem_prag
.
adb
(
Analyze_Pragma
,
case
Priority
):
Force
with
of
system
.
tasking
if
pragma
priority
used
in
a
procedure
(
Analyze_Pragma
,
case
Warning
):
Handle
dot
warning
switches
(
Process_Compile_Time_Warning_Or_Error
):
New
procedure
(
Analyze_Pragma
):
Add
processing
for
Compile_Time_Error
Add
support
for
extra
arguments
External_Name
and
Link_Name
.
Remove
code
associated
with
pragmas
CPP_Virtual
and
CPP_Vtable
.
(
Process_Import_Or_Interface
):
Add
support
for
the
use
of
pragma
Import
with
tagged
types
.
(
Extensions_Allowed
):
No
longer
affects
Ada_Version
(
Analyze_Pragma
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
Make
sure
these
are
called
only
when
appropriate
.
Add
processing
for
pragma
Unreferenced_Objects
*
snames
.
h
,
snames
.
ads
,
snames
.
adb
:
Add
entry
for
pragma
Compile_Time_Error
Add
new
standard
name
Minimum_Binder_Options
for
new
gprmake
Add
new
standard
names
for
gprmake
:
Archive_Suffix
,
Library_Auto_Init_Supported
,
Library_Major_Minor_Id_Supported
,
Library_Support
,
Library_Version_Options
,
Shared_Library_Minimum_Options
,
Shared_Library_Prefix
,
Shared_Library_Suffix
,
Symbolic_Link_Supported
.
Change
Name_Call
to
Name_uCall
so
that
it
cannot
clash
with
a
legal
subprogram
name
.
Add
new
standard
names
Mapping_Spec_Suffix
and
Mapping_Body_Suffix
Append
C_Plus_Plus
to
convention
identifiers
as
synonym
for
CPP
Add
new
standard
names
Stack
and
Builder_Switches
Add
new
standard
names
:
Compiler_Minimum_Options
,
Global_Config_File
,
Library_Builder
,
Local_Config_File
,
Objects_Path
,
Objects_Path_File
,
Run_Path_Option
,
Toolchain_Version
.
Entry
for
pragma
Unreferenced_Objects
*
switch
-
c
.
adb
(
Scan_Front_End_Switches
):
Store
correct
-
gnateD
switches
,
without
repetition
of
"eD"
.
Make
sure
that
last
character
of
-
gnatep
=
switch
is
not
taken
as
-
gnat
switch
character
.
Complete
rewrite
of
circuit
for
handling
saving
compilation
options
Occasioned
by
need
to
support
dot
switchs
for
-
gnatw
,
but
cleans
up
things
in
general
.
-
gnatX
does
not
affect
Ada_Version
Include
-
gnatyA
in
-
gnatg
style
switches
*
sem_warn
.
ads
,
sem_warn
.
adb
(
Output_Unreferenced_Messages
):
Exclude
warnings
on
return
objects
.
(
Warn_On_Useless_Assignment
):
Exclude
warnings
on
return
objects
(
Set_Dot_Warning_Switch
):
New
procedure
(
Check_References
):
Add
missing
case
of
test
for
Has_Pragma_Unreferenced_Objects
(
Output_Unreferenced_Messages
):
Implement
effect
of
new
pragma
Unreferenced_Objects
,
remove
special
casing
of
limited
controlled
variables
.
2007
-
04
-
06
Vincent
Celier
<
celier
@
adacore
.
com
>
*
prj
-
ext
.
adb
(
Initialize_Project_Path
):
New
procedure
that
initialize
the
default
project
path
,
initially
done
during
elaboration
of
the
package
.
If
the
prefix
returned
by
Sdefault
is
null
,
get
the
prefix
from
a
call
to
Executable_Prefix_Path
.
(
Project_Path
):
Call
Initialize_Project_Path
if
Current_Project_Path
is
null
.
*
prj
-
nmsc
.
adb
(
Get_Path_Names_And_Record_Sources
):
Use
the
non
canonical
directory
name
to
open
the
directory
from
which
files
are
retrieved
.
(
Record_Other_Sources
):
Idem
.
(
Locate_Directory
):
Add
the
possibility
to
create
automatically
missing
directories
when
Setup_Projects
is
True
.
Call
Locate_Directory
so
that
the
directory
will
be
created
when
Setup_Projects
is
True
,
for
object
dir
,
library
dir
,
library
ALI
dir
,
library
source
copy
dir
and
exec
dir
.
*
prj
-
pp
.
adb
(
Max_Line_Length
):
Set
to
255
for
compatibility
with
older
versions
of
GNAT
.
2007
-
04
-
06
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
sem_ch13
.
ads
,
sem_ch13
.
adb
(
Adjust_Record_For_Reverse_Bit_Order
):
Use
First
/
Next_Component_Or_Discriminant
(
Analyze_Record_Representation_Clause
):
Use
First
/
Next_Component_Or_Discriminant
(
Check_Component_Overlap
):
Use
First
/
Next_Component_Or_Discriminant
(
Analyze_Attribute_Definition_Clause
,
case
Value_Size
):
Reject
definition
if
type
is
unconstrained
.
(
Adjust_Record_For_Reverse_Bit_Order
):
New
procedure
(
Analyze_Attribute_Definition_Clause
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
(
Adjust_Record_For_Reverse_Bit_Order
):
New
procedure
*
repinfo
.
adb
(
List_Record_Info
):
Use
First
/
Next_Component_Or_Discriminant
.
*
style
.
ads
,
styleg
-
c
.
adb
,
styleg
-
c
.
ads
(
Check_Array_Attribute_Index
):
New
procedure
.
*
stylesw
.
ads
,
stylesw
.
adb
:
Recognize
new
-
gnatyA
style
switch
Include
-
gnatyA
in
default
switches
*
opt
.
ads
:
(
Warn_On_Non_Local_Exception
):
New
flag
(
Warn_On_Reverse_Bit_Order
):
New
flag
(
Extensions_Allowed
):
Update
the
documentation
.
(
Warn_On_Questionable_Missing_Parens
):
Now
on
by
default
*
usage
.
adb
:
Add
documentation
of
-
gnatw
.
x
/
X
switches
Document
new
-
gnatyA
style
switch
-
gnatq
warnings
are
on
by
default
2007
-
04
-
06
Ed
Falis
<
falis
@
adacore
.
com
>
*
s
-
carun8
.
adb
,
s
-
carsi8
.
adb
(
Compare_Array_
?
8
):
modify
so
that
last
full
word
is
no
longer
compared
twice
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
*
sem_ch10
.
adb
(
Install_Limited_Context_Clauses
.
Expand_Limited_With_Clause
):
Use
a
new
copy
of
selector
name
in
the
call
to
Make_With_Clause
.
This
fixes
the
tree
structure
for
ASIS
purposes
.
Nothing
is
changed
in
the
compiler
behaviour
.
(
Process_Body_Clauses
):
Handle
properly
use
clauses
whose
prefix
is
a
package
renaming
.
(
Install_Limited_With_Clauses
):
Do
not
install
non
-
limited
view
when
it
is
still
incomplete
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
*
sem_ch12
.
adb
(
Check_Generic_Actuals
):
Use
first
subtype
of
actual
when
capturing
size
information
,
instead
of
base
type
,
which
for
a
formal
array
type
will
be
the
unconstrained
type
.
(
Analyze_Formal_Object_Declaration
):
Add
check
for
illegal
default
expressions
for
a
formal
in
object
of
a
limited
type
.
(
Instantiate_Object
):
Ditto
.
(
Check_Formal_Package_Instance
):
Skip
entities
that
are
formal
objects
,
because
they
were
defaulted
in
the
formal
package
and
no
check
applies
to
them
.
(
Check_Formal_Package_Instance
):
Extend
conformance
check
to
other
discrete
types
beyond
Integer
.
(
Process_Default
):
Copy
directly
the
unmatched
formal
.
A
generic
copy
has
already
been
performed
in
Analyze_Formal_Package
.
(
Analyze_Associations
):
If
a
formal
subprogram
has
no
match
,
check
for
partial
parametrization
before
looking
for
a
default
,
to
prevent
spurious
errors
.
(
Analyze_Package_Instantiation
,
Analyze_Subprogram_Instantiation
):
Do
not
set
the
instantiation
environment
before
analyzing
the
actuals
.
Fixes
regression
on
8515
-
003
with
implementation
of
AI
-
133.
Set_Instance_Env
checks
whether
the
generic
unit
is
a
predefined
unit
,
in
which
case
the
instance
must
be
analyzed
with
the
latest
Ada
mode
.
This
setting
must
take
place
after
analysis
of
the
actuals
,
because
the
actuals
must
be
analyzed
and
frozen
in
the
Ada
mode
extant
outside
of
the
current
instantiation
.
(
Save_Env
,
Restore_Env
):
Preserve
and
restore
the
configuration
parameters
so
that
predefined
units
can
be
compiled
in
the
proper
Ada
mode
.
(
Analyze_Formal_Object_Declaration
,
Analyze_Formal_Subprogram
,
Instantiate_Type
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
(
Analyze_Formal_Package
):
For
better
error
recovery
,
Add
exception
handler
to
catch
Instantion_Error
,
which
can
be
raised
in
Analyze_Associations
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Bob
Duff
<
duff
@
adacore
.
com
>
Gary
Dismukes
<
dismukes
@
adacore
.
com
>
*
sem_ch4
.
adb
(
Try_Primitive_Operation
):
The
call
is
legal
if
the
prefix
type
is
a
discriminated
subtype
of
the
type
of
the
formal
.
(
Analyze_Allocator
):
Collect
all
coextensions
regardless
of
the
context
.
Whether
they
can
be
allocated
statically
is
determined
in
exp_ch4
.
(
Analyze_Selected_Component
):
If
the
prefix
is
a
limited
view
and
the
non
-
limited
view
is
available
,
use
the
non
-
limited
one
.
(
Operator_Check
):
For
"X'Access = Y'Access"
(
which
is
ambiguous
,
and
therefore
illegal
),
suggest
a
qualified
expression
rather
than
a
type
conversion
,
because
a
type
conversion
would
be
illegal
in
this
context
.
(
Anayze_Allocator
):
Trace
recursively
all
nested
allocators
so
that
all
coextensions
are
on
the
corresponding
list
for
the
root
.
Do
no
mark
coextensions
if
the
root
allocator
is
within
a
declaration
for
a
stack
-
allocated
object
,
because
the
access
discriminants
will
be
allocated
on
the
stack
as
well
.
(
Analyze_Call
):
Remove
restriction
on
calls
to
limited
functions
for
the
cases
of
generic
actuals
for
formal
objects
,
defaults
for
formal
objects
and
defaults
for
record
components
.
(
Analyze_Allocator
):
Before
analysis
,
chain
coextensions
on
the
proper
element
list
.
Their
expansion
is
delayed
until
the
enclosing
allocator
is
processed
and
its
finalization
list
constructed
.
(
Try_Primitive_Operation
):
If
the
prefix
is
a
concurrent
type
,
looks
for
an
operation
with
the
given
name
among
the
primitive
operations
of
the
corresponding
record
type
.
(
Analyze_Selected_Component
):
If
the
prefix
is
a
task
type
that
implements
an
interface
,
and
there
is
no
entry
with
the
given
name
,
check
whether
there
is
another
primitive
operation
(
e
.
g
.
a
function
)
with
that
name
.
(
Try_Object_Operation
,
Analyze_One_Call
,
Try_Indexed_Call
):
Handle
properly
the
indexing
of
a
function
call
written
in
prefix
form
,
where
the
function
returns
an
array
type
,
and
all
parameters
of
the
function
except
the
first
have
defaults
.
(
Analyze_Equality_Op
):
If
this
is
a
call
to
an
implicit
inequality
,
keep
the
original
operands
,
rather
than
relocating
them
,
for
efficiency
and
to
work
properly
when
an
operand
is
overloaded
.
(
Analyze_Allocator
,
Operator_Check
,
Remove_Abstract_Operations
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
(
Analyze_Selected_Component
):
If
the
prefix
is
a
private
extension
,
only
scan
the
visible
components
,
not
those
of
the
full
view
.
(
Try_Primitive_Operation
):
If
the
operation
is
a
procedure
,
collect
all
possible
interpretations
,
as
for
a
function
,
because
in
the
presence
of
classwide
parameters
several
primitive
operations
of
the
type
can
match
the
given
arguments
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
sem_ch5
.
adb
(
Analyze_Assignment
):
Reject
a
right
-
hand
side
that
is
a
tag
-
indeterminate
call
to
an
abstract
function
,
when
the
left
-
hand
side
is
not
classwide
.
(
Analyze_Loop_Statement
):
Improve
detection
of
infinite
loops
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Thomas
Quinot
<
quinot
@
adacore
.
com
>
*
sem_ch7
.
ads
,
sem_ch7
.
adb
(
Inspect_Deferred_Constant_Completion
):
Move
out
of
Analyze_Package_Declaration
,
because
processing
must
be
applied
to
package
bodies
as
well
,
for
deferred
constants
completed
by
pragmas
.
(
Analyze_Package_Declaration
):
When
the
package
declaration
being
analyzed
does
not
require
an
explicit
body
,
call
Check_Completion
.
(
May_Need_Implicit_Body
):
An
implicit
body
is
required
when
a
package
spec
contains
the
declaration
of
a
remote
access
-
to
-
classwide
type
.
(
Analyze_Package_Body
):
If
the
package
contains
RACWs
,
append
the
pending
subprogram
bodies
generated
by
exp_dist
at
the
end
of
the
body
.
(
New_Private_Type
,
Unit_Requires_Body
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
(
Preserve_Full_Attributes
):
The
full
entity
list
is
not
an
attribute
that
must
be
preserved
from
full
to
partial
view
.
*
sem_dist
.
adb
(
Add_RAS_Dereference_TSS
):
Change
primitive
name
to
_Call
so
it
cannot
clash
with
any
legal
identifier
,
and
be
special
-
cased
in
Check_Completion
.
Mark
the
full
view
of
the
designated
type
for
the
RACW
associated
with
a
RAS
as
Comes_From_Source
to
get
proper
view
switching
when
installing
private
declarations
.
Provite
a
placeholder
nested
package
body
along
with
the
nested
spec
to
have
a
place
for
Append_RACW_Bodies
to
generate
the
calling
stubs
and
stream
attributes
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
sem_ch8
.
adb
(
Has_Components
):
If
the
argument
is
an
incomplete
type
that
is
a
limited
view
,
check
the
non
-
limited
view
if
available
.
(
Undefined
):
Refine
error
message
for
missing
with
of
Text_IO
(
Find_Expanded_Name
):
Use
Is_Known_Unit
for
more
accurate
error
message
to
distinguish
real
missing
with
cases
.
Fix
format
of
all
missing
with
messages
(
Analyze_Subprogram_Renaming
):
Emit
proper
error
message
on
illegal
renaming
as
body
when
renamed
entity
is
abstract
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Javier
Miranda
<
miranda
@
adacore
.
com
>
*
sem_type
.
ads
,
sem_type
.
adb
(
Has_Abstract_Interpretation
):
Make
predicate
recursive
,
to
handle
complex
expressions
on
literals
whose
spurious
ambiguity
comes
from
the
abstract
interpretation
of
some
subexpression
.
(
Interface_Present_In_Ancestor
):
Add
support
to
concurrent
record
types
.
(
Add_One_Interp
,
Disambiguate
):
Split
Is_Abstract
flag
into
Is_Abstract_Subprogram
and
Is_Abstract_Type
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Javier
Miranda
<
miranda
@
adacore
.
com
>
*
sem_util
.
ads
,
sem_util
.
adb
(
Object_Access_Level
):
If
the
object
is
a
dereference
of
a
local
object
R
created
as
a
reference
to
another
object
O
,
use
the
access
level
of
O
.
(
Matches_Prefixed_View_Profile
):
Use
common
predicate
Conforming_Types
,
rather
than
local
Same_Formal_Type
,
to
check
whether
protected
operation
overrides
an
inherited
one
.
(
Same_Formal_Type
):
New
predicate
,
used
when
matching
signatures
of
overriding
synchronized
operations
,
to
handle
the
case
when
a
formal
has
a
type
that
is
a
generic
actual
.
(
Is_Aliased_View
):
Replace
check
on
E_Task_Type
and
E_Protected_Type
by
predicate
Is_Concurrent_Type
.
This
ensures
supportin
case
of
subtypes
.
(
Needs_One_Actual
):
New
predicate
,
for
Ada
2005
use
,
to
resolve
syntactic
ambiguities
involving
indexing
of
function
calls
that
return
arrays
.
(
Abstract_Interface_List
):
New
subprogram
that
returns
the
list
of
abstract
interfaces
associated
with
a
concurrent
type
or
a
concurrent
record
type
.
(
Interface_Present_In_Parent
):
New
subprogram
used
to
check
if
a
given
type
or
some
of
its
parents
implement
a
given
interface
.
(
Collect_Abstract_Interfaces
):
Add
support
for
concurrent
types
with
interface
types
.
(
Has_Abstract_Interfaces
):
Add
support
for
concurrent
types
with
interface
types
.
(
Is_Parent
):
New
subprogram
that
determines
whether
E1
is
a
parent
of
E2
.
For
a
concurrent
type
its
parent
is
the
first
element
of
its
list
of
interface
types
;
for
other
types
this
function
provides
the
same
result
than
Is_Ancestor
.
(
Enclosing_Subprogram
):
Add
test
for
N_Extended_Return_Statement
.
(
Collect_Synchronized_Interfaces
):
Removed
because
the
subprogram
Collect_Abstract_Interfaces
provides
this
functionality
.
(
Collect_Abstract_Interfaces
):
Minor
update
to
give
support
to
concurrent
types
and
thus
avoid
undesired
code
duplication
.
(
Get_Subprogram_Entity
):
Handle
entry
calls
.
(
May_Be_Lvalue
):
Include
actuals
that
appear
as
in
-
out
parameters
in
entry
calls
.
(
Enter_Name
):
Do
not
give
-
gnatwh
hiding
warning
for
record
component
entities
,
they
never
result
in
hiding
.
2007
-
04
-
06
Ed
Schonberg
<
schonberg
@
adacore
.
com
>
Robert
Dewar
<
dewar
@
adacore
.
com
>
*
sinfo
.
ads
,
sinfo
.
adb
(
Coextensions
):
New
element
list
for
allocators
,
to
chain
nested
components
that
are
allocators
for
access
discriminants
of
the
enclosing
object
.
Add
N_Push
and
N_Pop
nodes
New
field
Exception_Label
added
(
Local_Raise_Statements
):
New
field
in
N_Exception_Handler_Node
(
Local_Raise_Not_OK
):
New
flag
in
N_Exception_Handler_Node
(
Is_Coextension
):
New
flag
for
allocators
,
to
mark
allocators
that
correspond
to
access
discriminants
of
dynamically
allocated
objects
.
(
N_Block_Statement
):
Document
the
fact
that
the
corresponding
entity
can
be
an
E_Return_Statement
.
(
Is_Coextension
):
New
flag
for
allocators
.
Remove
all
code
for
DSP
option
*
sprint
.
ads
,
sprint
.
adb
:
Display
basic
information
for
class_wide
subtypes
.
Add
handling
of
N_Push
and
N_Pop
nodes
2007
-
04
-
06
Arnaud
Charlet
<
charlet
@
adacore
.
com
>
*
s
-
tpobop
.
adb
(
Exceptional_Complete_Entry_Body
):
Undefer
abortion
before
propagating
exception
.
2007
-
04
-
06
Olivier
Hainque
<
hainque
@
adacore
.
com
>
*
tracebak
.
c
(
PC_ADJUST
-
ia64
):
-
4
instead
of
-
16
,
expected
to
yield
an
address
always
within
the
call
instruction
from
a
return
address
.
2007
-
04
-
06
Olivier
Hainque
<
hainque
@
adacore
.
com
>
Eric
Botcazou
<
botcazou
@
adacore
.
com
>
*
trans
.
c
(
call_to_gnu
)
<
TYPE_RETURNS_BY_TARGET_PTR_P
>:
Return
an
expression
with
a
COMPOUND_EXPR
including
the
call
instead
of
emitting
the
call
directly
here
.
(
gnat_to_gnu
)
<
N_Slice
>:
Do
not
return
a
non
-
constant
low
bound
if
the
high
bound
is
constant
and
the
slice
is
empty
.
Tidy
.
(
tree_transform
,
case
N_Op_Not
):
Handle
properly
the
case
where
the
operation
applies
to
a
private
type
whose
full
view
is
a
modular
type
.
(
Case_Statement_To_gnu
):
If
an
alternative
is
an
E_Constant
with
an
Address_Clause
,
use
the
associated
Expression
as
the
GNAT
tree
representing
the
choice
value
to
ensure
the
corresponding
GCC
tree
is
of
the
proper
kind
.
(
maybe_stabilize_reference
):
Stabilize
COMPOUND_EXPRs
as
a
whole
instead
of
just
the
operands
,
as
the
base
GCC
stabilize_reference
does
.
<
CALL_EXPR
>:
New
case
.
Directly
stabilize
the
call
if
an
lvalue
is
not
requested
;
otherwise
fail
.
(
addressable_p
)
<
COMPONENT_REF
>:
Do
not
test
DECL_NONADDRESSABLE_P
.
2007
-
04
-
06
Thomas
Quinot
<
quinot
@
adacore
.
com
>
*
uintp
.
ads
,
uintp
.
adb
(
UI_Div_Rem
):
New
subprogram
,
extending
previous
implementation
of
UI_Div
.
(
UI_Div
):
Reimplement
as
a
call
to
UI_Div_Rem
.
(
UI_Rem
):
Take
advantage
of
the
fact
that
UI_Div_Rem
provides
the
remainder
,
avoiding
the
cost
of
a
multiplication
and
a
subtraction
.
(
UI_Modular_Inverse
):
Take
advantage
of
the
fact
that
UI_Div_Rem
provides
both
quotient
and
remainder
in
a
single
computation
.
(
UI_Modular_Exponentiation
,
UI_Modular_Inverse
):
New
modular
arithmetic
functions
for
uint
.
(
UI_Modular_Inverse
):
Add
a
note
that
the
behaviour
of
this
subprogram
is
undefined
if
the
given
n
is
not
inversible
.
2007
-
04
-
06
Olivier
Hainque
<
hainque
@
adacore
.
com
>
*
utils2
.
c
(
known_alignment
):
Handle
COMPOUND_EXPR
,
COND_EXPR
and
BIT_AND_EXPR
.
Handle
also
VIEW_CONVERT_EXPR
,
as
the
other
conversion
opcodes
.
2007
-
04
-
06
Eric
Botcazou
<
botcazou
@
adacore
.
com
>
Olivier
Hainque
<
hainque
@
adacore
.
com
>
*
utils
.
c
(
update_pointer_to
):
Make
a
copy
of
the
couple
of
FIELD_DECLs
when
updating
the
contents
of
the
old
pointer
to
an
unconstrained
array
.
(
end_subprog_body
):
Set
error_gnat_node
to
Empty
.
(
write_record_type_debug_info
):
Do
not
be
unduly
sparing
with
our
bytes
.
(
unchecked_convert
):
For
subtype
to
base
type
conversions
,
require
that
the
source
be
a
subtype
if
it
is
an
integer
type
.
(
builtin_decls
):
New
global
,
vector
of
available
builtin
functions
.
(
gnat_pushdecl
):
Add
global
builtin
function
declaration
nodes
to
the
builtin_decls
list
.
(
gnat_install_builtins
):
Adjust
comments
.
(
builtin_function
):
Set
DECL_BUILTIN_CLASS
and
DECL_FUNCTION_CODE
before
calling
gnat_pushdecl
,
so
that
it
knows
when
it
handed
a
builtin
function
declaration
node
.
(
builtin_decl_for
):
Search
the
builtin_decls
list
.
2007
-
04
-
06
Eric
Botcazou
<
botcazou
@
adacore
.
com
>
*
s
-
stchop
-
vxworks
.
adb
:
(
Stack_Check
):
Raise
Storage_Error
if
the
argument
has
wrapped
around
.
2007
-
04
-
06
Robert
Dewar
<
dewar
@
adacore
.
com
>
Arnaud
Charlet
<
charlet
@
adacore
.
com
>
*
a
-
diroro
.
ads
:
Inserted
the
pragma
Unimplemented_Unit
*
bindgen
.
adb
(
Gen_Output_File_Ada
):
Generate
pragma
Ada_95
at
start
of
files
Add
mention
of
-
Sev
(
set
initialize_scalars
option
from
environment
variable
at
run
time
)
in
gnatbind
usage
message
.
*
elists
.
ads
,
elists
.
adb
:
(
Append_Unique_Elmt
):
New
procedure
*
fname
-
uf
.
ads
:
Minor
comment
fix
*
osint
.
ads
:
Change
pragma
Elaborate
to
Elaborate_All
*
par
-
load
.
adb
:
Add
documentation
.
*
sem_cat
.
ads
,
sem_cat
.
adb
:
Minor
code
reorganization
*
s
-
parint
.
ads
(
RCI_Locator
)
:
Add
'Version'
generic
formal
*
s
-
secsta
.
ads
:
Extra
comments
*
s
-
soflin
.
ads
:
Minor
comment
fixes
*
s
-
stratt
.
ads
(
Block_Stream_Ops_OK
):
Removed
.
*
s
-
wchcon
.
ads
:
Minor
comment
addition
*
treepr
.
adb
:
Minor
change
in
message
(
Print_Name
,
Print_Node
):
Make
these
debug
printouts
more
robust
:
print
"no such..."
instead
of
crashing
on
bad
input
.
2007
-
03
-
30
Rafael
Avila
de
Espindola
<
espindola
@
google
.
com
>
*
trans
.
c
(
Attribute_to_gnu
):
Use
get_signed_or_unsigned_type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment