[multiple changes]

2009-12-01  Thomas Quinot  <quinot@adacore.com>

	* g-sechas.ads (GNAT.Secure_Hashes.H."=" on Context): Make abstract.

2009-12-01  Matthew Gingell  <gingell@adacore.com>

	* adadecode.c: Allow compilation when building the run time in the gnat
	runtime.
	(__gnat_decode): Strip the .nnnn suffix from names of nested functions.

	* gcc-interface/Makefile.in: Ada adadecode to LIBGNAT_SRCS and
	LIBGNAT_OBJS.

2009-12-01  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Check_Files): Quote the path names as they may include
	spaces.

2009-12-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): If the defining identifier
	has already been declared, it may have been rewritten as a renaming
	declaration.

From-SVN: r154870
This commit is contained in:
Arnaud Charlet 2009-12-01 11:24:39 +01:00
parent c7ba0cfb61
commit 4f08579c5e
6 changed files with 79 additions and 15 deletions

View File

@ -1,3 +1,27 @@
2009-12-01 Thomas Quinot <quinot@adacore.com>
* g-sechas.ads (GNAT.Secure_Hashes.H."=" on Context): Make abstract.
2009-12-01 Matthew Gingell <gingell@adacore.com>
* adadecode.c: Allow compilation when building the run time in the gnat
runtime.
(__gnat_decode): Strip the .nnnn suffix from names of nested functions.
* gcc-interface/Makefile.in: Ada adadecode to LIBGNAT_SRCS and
LIBGNAT_OBJS.
2009-12-01 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Check_Files): Quote the path names as they may include
spaces.
2009-12-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): If the defining identifier
has already been declared, it may have been rewritten as a renaming
declaration.
2009-12-01 Ed Schonberg <schonberg@adacore.com>
* einfo.ads: Clarify use of Is_Private_Primitive.

View File

@ -29,14 +29,26 @@
* *
****************************************************************************/
#ifdef IN_GCC
#if defined(IN_RTS)
#include "tconfig.h"
#include "tsystem.h"
#elif defined(IN_GCC)
#include "config.h"
#include "system.h"
#else
#endif
#include <string.h>
#include <stdio.h>
#include <ctype.h>
#include "adaint.h"
#ifndef ISDIGIT
#define ISDIGIT(c) isdigit(c)
#endif
#ifndef PARMS
#define PARMS(ARGS) ARGS
#endif
@ -237,6 +249,21 @@ __gnat_decode (const char *coded_name, char *ada_name, int verbose)
}
}
/* Check for nested subprogram ending in .nnnn and strip suffix. */
{
int last = strlen (ada_name) - 1;
while (ISDIGIT (ada_name[last]) && last > 0)
{
last--;
}
if (ada_name[last] == '.')
{
ada_name[last] = (char) 0;
}
}
/* Change all "__" to ".". */
{
int len = strlen (ada_name);

View File

@ -133,6 +133,13 @@ package GNAT.Secure_Hashes is
type Context is private;
-- The internal processing state of the hashing function
function "=" (L, R : Context) return Boolean is abstract;
-- Context is the internal, implementation defined state of an
-- intermediate state in a hash computation, and no specific semantics
-- can be expected on equality of context values. Only equality of
-- final hash values (as returned by the [Wide_]Digest functions below)
-- is meaningful.
Initial_Context : constant Context;
-- Initial value of a Context object. May be used to reinitialize
-- a Context value by simple assignment of this value to the object.

View File

@ -2113,15 +2113,16 @@ endif
# while GNATRTL_OBJS lists the object files compiled from Ada sources that
# go into the directory. The pthreads emulation is built in the threads
# subdirectory and copied.
LIBGNAT_SRCS = adaint.c adaint.h argv.c cio.c cstreams.c \
errno.c exit.c cal.c ctrl_c.c env.c env.h arit64.c \
raise.h raise.c sysdep.c aux-io.c init.c initialize.c seh_init.c \
final.c tracebak.c tb-alvms.c tb-alvxw.c tb-gcc.c expect.c mkdir.c \
socket.c gsocket.h targext.c $(EXTRA_LIBGNAT_SRCS)
LIBGNAT_SRCS = adadecode.c adadecode.h adaint.c adaint.h \
argv.c cio.c cstreams.c errno.c exit.c cal.c ctrl_c.c env.c env.h \
arit64.c raise.h raise.c sysdep.c aux-io.c init.c initialize.c \
seh_init.c final.c tracebak.c tb-alvms.c tb-alvxw.c tb-gcc.c \
expect.c mkdir.c socket.c gsocket.h targext.c $(EXTRA_LIBGNAT_SRCS)
LIBGNAT_OBJS = adaint.o argv.o cio.o cstreams.o ctrl_c.o errno.o exit.o env.o \
raise.o sysdep.o aux-io.o init.o initialize.o seh_init.o cal.o arit64.o \
final.o tracebak.o expect.o mkdir.o socket.o targext.o $(EXTRA_LIBGNAT_OBJS)
LIBGNAT_OBJS = adadecode.o adaint.o argv.o cio.o cstreams.o ctrl_c.o \
errno.o exit.o env.o raise.o sysdep.o aux-io.o init.o initialize.o \
seh_init.o cal.o arit64.o final.o tracebak.o expect.o mkdir.o \
socket.o targext.o $(EXTRA_LIBGNAT_OBJS)
# NOTE ??? - when the -I option for compiling Ada code is made to work,
# the library installation will change and there will be a

View File

@ -575,8 +575,12 @@ procedure GNATCmd is
(Unit.File_Names (Kind).Project, Project)
and then not Unit.File_Names (Kind).Locally_Removed
then
Get_Name_String
(Unit.File_Names (Kind).Path.Display_Name);
Name_Len := 0;
Add_Char_To_Name_Buffer ('"');
Add_Str_To_Name_Buffer
(Get_Name_String
(Unit.File_Names (Kind).Path.Display_Name));
Add_Char_To_Name_Buffer ('"');
if FD /= Invalid_FD then
Name_Len := Name_Len + 1;

View File

@ -9725,11 +9725,12 @@ package body Sem_Ch3 is
New_T := Any_Type;
end if;
-- If previous full declaration exists, or if a homograph is present,
-- let Enter_Name handle it, either with an error, or with the removal
-- of an overridden implicit subprogram.
-- If previous full declaration or a renaming declaration exists, or if
-- a homograph is present, let Enter_Name handle it, either with an
-- error or with the removal of an overridden implicit subprogram.
if Ekind (Prev) /= E_Constant
or else Nkind (Parent (Prev)) = N_Object_Renaming_Declaration
or else Present (Expression (Parent (Prev)))
or else Present (Full_View (Prev))
then