aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog29
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in87
-rw-r--r--gcc/ada/gcc-interface/Makefile.in19
-rw-r--r--gcc/ada/gcc-interface/lang.opt47
-rw-r--r--gcc/ada/gcc-interface/misc.c11
-rw-r--r--gcc/ada/sem_util.adb2
6 files changed, 63 insertions, 132 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a6cc689..c995c97 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,34 @@
2011-10-12 Eric Botcazou <ebotcazou@adacore.com>
+ * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.
+ * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New.
+ (ALL_ADAFLAGS): Include WARN_ADAFLAGS.
+ (ADA_FLAGS_TO_PASS): Likewise.
+ (COMMON_FLAGS_TO_PASS): New.
+ (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular
+ native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS.
+ (gnatlib): Use COMMON_FLAGS_TO_PASS.
+ (ada.install-common): Likewise.
+ (install-gnatlib): Likewise.
+ (install-gnatlib-obj): Likewise.
+ (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well.
+ (gnat-cross): Delete.
+ (gnatboot): Likewise.
+ (gnatboot2): Likewise.
+ (gnatboot3): Likewise.
+ (gnatstage1): Likewise.
+ (gnatstage2): Likewise.
+ * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise.
+ (MOST_ADAFLAGS): Likewise.
+ (LOOSE_CFLAGS): Likewise.
+ (gnat-cross): Likewise.
+ (GNATLIBFLAGS): Add -W -Wall.
+ (GNATLIBCFLAGS_FOR_C): Likewise.
+ * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines.
+ * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases.
+
+2011-10-12 Eric Botcazou <ebotcazou@adacore.com>
+
* gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions.
(push_range_check_info): Likewise.
(gnat_to_gnu) <N_Code_Statement>: Likewise.
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 9f25fc2..a3ec5d3 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -46,6 +46,7 @@ RMDIR = rm -rf
# Extra flags to pass to recursive makes.
COMMON_ADAFLAGS= -gnatpg -gnata
+WARN_ADAFLAGS= -W -Wall
BOOT_ADAFLAGS= $(COMMON_ADAFLAGS)
ifeq ($(CROSS),)
@@ -56,17 +57,19 @@ else
ADAFLAGS= $(COMMON_ADAFLAGS)
endif
-ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
+ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(WARN_ADAFLAGS)
FORCE_DEBUG_ADAFLAGS = -g
ADA_CFLAGS =
ADA_INCLUDES = -nostdinc -I- -I. -Iada -I$(srcdir)/ada -I$(srcdir)/ada/gcc-interface
ADA_INCLUDE_DIR = $(libsubdir)/adainclude
ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
+# We do not want the WARN_CFLAGS of the compiler in Ada as it is for C/C++.
+COMMON_FLAGS_TO_PASS = $(filter-out -pedantic -W%, $(FLAGS_TO_PASS))
ADA_FLAGS_TO_PASS = \
"ADA_FOR_BUILD=$(ADA_FOR_BUILD)" \
"ADA_INCLUDE_DIR=$(ADA_INCLUDE_DIR)" \
"ADA_RTL_OBJ_DIR=$(ADA_RTL_OBJ_DIR)" \
- "ADAFLAGS=$(ADAFLAGS)" \
+ "ADAFLAGS=$(ADAFLAGS) $(WARN_ADAFLAGS)" \
"ADA_FOR_TARGET=$(ADA_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
@@ -99,14 +102,12 @@ ifeq ($(build), $(host))
# This is a regular native. So use the compiler from our current build
# tree.
ADA_TOOLS_FLAGS_TO_PASS=\
- "CC=../../xgcc -B../../" \
- "CFLAGS=$(CFLAGS)" \
- "exeext=$(exeext)" \
- "ADAFLAGS=$(ADAFLAGS)" \
- "ADA_INCLUDES=-I../rts" \
- "GNATMAKE=../../gnatmake" \
- "GNATLINK=../../gnatlink" \
- "GNATBIND=../../gnatbind"
+ CC="../../xgcc -B../../" \
+ $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+ ADA_INCLUDES="-I- -I../rts" \
+ GNATMAKE="../../gnatmake" \
+ GNATLINK="../../gnatlink" \
+ GNATBIND="../../gnatbind"
else
# This is a regular cross compiler. Use the native compiler to compile
# the tools.
@@ -117,7 +118,7 @@ ifeq ($(build), $(host))
ADA_TOOLS_FLAGS_TO_PASS=\
CC="$(CC)" \
- $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+ $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
ADA_INCLUDES="-I$(RTS_DIR)../adainclude -I$(RTS_DIR)" \
GNATMAKE="gnatmake" \
GNATBIND="gnatbind" \
@@ -139,7 +140,7 @@ else
# built runtime.
ADA_TOOLS_FLAGS_TO_PASS=\
CC="$(CC)" \
- $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+ $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
ADA_INCLUDES="-I../rts" \
GNATMAKE="$(GNATMAKE_FOR_HOST)" \
GNATBIND="$(GNATBIND_FOR_HOST)" \
@@ -151,7 +152,7 @@ else
RTS_DIR:=$(strip $(subst \,/,$(shell $(GNATLS_FOR_HOST) -v | grep adalib )))
ADA_TOOLS_FLAGS_TO_PASS=\
CC="$(CC)" \
- $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
+ $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
ADA_INCLUDES="-I$(RTS_DIR)../adainclude -I$(RTS_DIR)" \
GNATMAKE="$(GNATMAKE_FOR_HOST)" \
GNATBIND="$(GNATBIND_FOR_HOST)" \
@@ -547,9 +548,7 @@ gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) ggc-none.o libcomm
# use target-gcc target-gnatmake target-gnatbind target-gnatlink
gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force
- $(MAKE) -C ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
- ADA_INCLUDES="-I- -I../rts"\
- CC="../../xgcc -B../../" GNATBIND="../../gnatbind" gnattools1
+ $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1
$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
regnattools:
@@ -566,7 +565,7 @@ canadian-gnattools: force
$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: ada/s-oscons.ads force
- $(MAKE) -C ada $(FLAGS_TO_PASS) \
+ $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \
@@ -578,11 +577,6 @@ gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: ada/s-oscons.ads force
# use only for native compiler
gnatlib_and_tools: gnatlib gnattools
-# use cross-gcc
-gnat-cross: force
- make $(GNAT1_ADA_OBJS) CC="gcc -B../stage1/" CFLAGS="-S -gnatp" \
- $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) HOST_CFLAGS= HOST_CC=cc
-
# Build hooks:
ada.all.cross:
@@ -966,14 +960,14 @@ ada.install-common:
#
-if [ -f gnat1$(exeext) ] ; \
then \
- $(MAKE) $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib; \
+ $(MAKE) $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib; \
fi
install-gnatlib:
- $(MAKE) -C ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET)
+ $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET)
install-gnatlib-obj:
- $(MAKE) -C ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib-obj
+ $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib-obj
ada.install-man:
ada.install-plugin:
@@ -1129,50 +1123,7 @@ $(check_acats_targets): check-acats%:
export testdir; cd $(ACATSDIR)$* && $(SHELL) $${testdir}/run_acats $$chapters
.PHONY: check-acats $(check_acats_targets)
-
-# Bootstrapping targets for just GNAT - use the same stage directories
-gnatboot: force
- -$(RM) gnatboot3
- $(MAKE) gnat1$(exeext) gnatbind$(exeext) CC="$(CC)" \
- CFLAGS="$(CFLAGS)"
- $(MAKE) gnatboot2 BOOT_CFLAGS="$(BOOT_CFLAGS)" \
- BOOT_ADAFLAGS="$(BOOT_ADAFLAGS)" \
- LDFLAGS="$(BOOT_LDFLAGS)"
-
-gnatboot2: force
- $(MAKE) gnatstage1
- $(MAKE) gnat1$(exeext) gnatbind$(exeext) CC="gcc -B../stage1/"\
- CFLAGS="$(BOOT_CFLAGS)" \
- ADAFLAGS="$(BOOT_ADAFLAGS)"\
- LDFLAGS="$(BOOT_LDFLAGS)" \
- GNATBIND="../stage1/gnatbind"
- $(MAKE) gnatboot3 BOOT_CFLAGS="$(BOOT_CFLAGS)" \
- BOOT_ADAFLAGS="$(BOOT_ADAFLAGS)" \
- LDFLAGS="$(BOOT_LDFLAGS)"
-
-gnatboot3:
- $(MAKE) gnatstage2
- $(MAKE) gnat1$(exeext) gnatbind$(exeext) CC="gcc -B../stage2/"\
- CFLAGS="$(BOOT_CFLAGS)" \
- ADAFLAGS="$(BOOT_ADAFLAGS)"\
- LDFLAGS="$(BOOT_LDFLAGS)" \
- GNATBIND="../stage2/gnatbind"
-
-gnatstage1: force
- -$(MKDIR) stage1
- -$(MKDIR) stage1/ada
- -$(MV) gnat1$(exeext) gnatbind$(exeext) stage1
- -$(MV) ada/*$(objext) ada/*.ali stage1/ada
- -$(MV) ada/stamp-* stage1/ada
-
-gnatstage2: force
- -$(MKDIR) stage2
- -$(MKDIR) stage2/ada
- -$(MV) gnat1$(exeext) gnatbind$(exeext) stage2
- -$(MV) ada/*$(objext) ada/*.ali stage2/ada
- -$(MV) ada/stamp-* stage2/ada
-
# Compiling object files from source files.
# Note that dependencies on obstack.h are not written
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 71bd5ea..df62a2c 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -105,20 +105,18 @@ TEXI2PDF = texi2pdf
GNATBIND_FLAGS = -static -x
ADA_CFLAGS =
ADAFLAGS = -W -Wall -gnatpg -gnata
-SOME_ADAFLAGS =-gnata
FORCE_DEBUG_ADAFLAGS = -g
-NO_SIBLING_ADAFLAGS=-fno-optimize-sibling-calls
-NO_REORDER_ADAFLAGS=-fno-toplevel-reorder
-GNATLIBFLAGS = -gnatpg -nostdinc
+NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls
+NO_REORDER_ADAFLAGS = -fno-toplevel-reorder
+GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc
GNATLIBCFLAGS = -g -O2
PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
# Pretend that _Unwind_GetIPInfo is available for the target by default. This
# should be autodetected during the configuration of libada and passed down to
# here, but we need something for --disable-libada and hope for the best.
-GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) -fexceptions \
- -DIN_RTS -DHAVE_GETIPINFO
+GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) \
+ -fexceptions -DIN_RTS -DHAVE_GETIPINFO
ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
-MOST_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(SOME_ADAFLAGS)
THREAD_KIND = native
THREADSLIB =
GMEM_LIB =
@@ -231,8 +229,7 @@ all.indirect: Makefile ../gnat1$(exeext)
INTERNAL_CFLAGS = @CROSS@ -DIN_GCC
# This is the variable actually used when we compile.
-LOOSE_CFLAGS = `echo $(CFLAGS) $(WARN2_CFLAGS)|sed -e 's/-pedantic//g' -e 's/-Wtraditional//g'`
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(LOOSE_CFLAGS)
+ALL_CFLAGS = $(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS)
# Likewise.
ALL_CPPFLAGS = $(CPPFLAGS)
@@ -2736,10 +2733,6 @@ gnatlib-zcx:
THREAD_KIND="$(THREAD_KIND)" \
PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
-# .s files for cross-building
-gnat-cross: force
- make $(GNAT1_ADA_OBJS) CC="gcc -B../stage1/" CFLAGS="-S -gnatp"
-
# Compiling object files from source files.
# Note that dependencies on obstack.h are not written
diff --git a/gcc/ada/gcc-interface/lang.opt b/gcc/ada/gcc-interface/lang.opt
index fd79c30..4839235 100644
--- a/gcc/ada/gcc-interface/lang.opt
+++ b/gcc/ada/gcc-interface/lang.opt
@@ -48,66 +48,35 @@ Ada AdaWhy Alias(nostdlib)
I
Ada AdaWhy Joined Separate
-; Documented for C
+-I <dir>. Add <dir> to the end of the main source path
Wall
Ada AdaWhy
-; Documented for C
-
-Wmissing-prototypes
-Ada AdaWhy
-; Documented for C
-
-Wstrict-prototypes
-Ada AdaWhy
-; Documented for C
-
-Wwrite-strings
-Ada AdaWhy
-; Documented for C
-
-Wlong-long
-Ada AdaWhy
-; Documented for C
-
-Wvariadic-macros
-Ada AdaWhy
-; Documented for C
-
-Wold-style-definition
-Ada AdaWhy
-; Documented for C
-
-Wmissing-format-attribute
-Ada AdaWhy
-; Documented for C
-
-Woverlength-strings
-Ada AdaWhy
-; Documented for C
+Enable most warning messages
k8
Driver
+Synonym of -gnatk8
nostdinc
Ada AdaWhy RejectNegative
-; Don't look for source files
+Do not look for source files in standard path
nostdlib
Ada AdaWhy
-; Don't look for object files
+Do not look for object files in standard path
fRTS=
Ada AdaWhy Joined RejectNegative
-; Selects the runtime
+Select the runtime
gant
Ada AdaWhy Joined Undocumented
-; Catches typos
+Catch typos
gnatO
Ada AdaWhy Separate
-; Sets name of output ALI file (internal switch)
+Set name of output ALI file (internal switch)
gnat
Ada AdaWhy Joined
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index 9b66712..a2de256 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -124,17 +124,6 @@ gnat_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED, int value,
warn_maybe_uninitialized = value;
break;
- case OPT_Wmissing_prototypes:
- case OPT_Wstrict_prototypes:
- case OPT_Wwrite_strings:
- case OPT_Wlong_long:
- case OPT_Wvariadic_macros:
- case OPT_Wold_style_definition:
- case OPT_Wmissing_format_attribute:
- case OPT_Woverlength_strings:
- /* These are used in the GCC Makefile. */
- break;
-
case OPT_gant:
warning (0, "%<-gnat%> misspelled as %<-gant%>");
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 1881563..381d9a5 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -2739,7 +2739,7 @@ package body Sem_Util is
end if;
elsif Is_Entity_Name (A2) then
- return Denotes_Same_Prefix (A2, A1);
+ return Denotes_Same_Prefix (A1 => A2, A2 => A1);
elsif Nkind_In (A1, N_Selected_Component, N_Indexed_Component, N_Slice)
and then