aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2015-02-20 11:40:20 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-02-20 12:40:20 +0100
commit5865a63df4a19147d7a5ae804e97aa79371dfd7b (patch)
tree93d89925917fc8332fa1b4da06756d2da5572dd4 /gcc/ada
parent07aff4e355ed0d2c6a360a4d587855f4cec530de (diff)
downloadgcc-5865a63df4a19147d7a5ae804e97aa79371dfd7b.zip
gcc-5865a63df4a19147d7a5ae804e97aa79371dfd7b.tar.gz
gcc-5865a63df4a19147d7a5ae804e97aa79371dfd7b.tar.bz2
Makefile.in: Remove references to nucleus.
* gcc-interface/Makefile.in: Remove references to nucleus. * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set extern_flag to true for Inline_Always subprograms with Intrinsic convention. From-SVN: r220851
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/Makefile.in21
-rw-r--r--gcc/ada/gcc-interface/decl.c7
3 files changed, 13 insertions, 22 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c06fb21..c255ca6 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gcc-interface/Makefile.in: Remove references to nucleus.
+ * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set
+ extern_flag to true for Inline_Always subprograms with
+ Intrinsic convention.
+
2015-02-20 Yannick Moy <moy@adacore.com>
* sem_prag.ads: Minor typo in comment.
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index df2d84c..60c1b5b 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -2355,27 +2355,6 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
GCC_LINK_FLAGS=-static-libstdc++
endif
-# ARM Nucleus
-ifeq ($(strip $(filter-out arm nucleus%,$(target_cpu) $(target_os))),)
- LIBGNAT_TARGET_PAIRS = \
- system.ads<system-nucleus-arm.ads \
- a-numaux.ads<a-numaux-vxworks.ads \
- a-intnam.ads<a-intnam-nucleus.ads \
- s-inmaop.adb<s-inmaop-posix.adb \
- s-intman.adb<s-intman-posix.adb \
- s-osinte.ads<s-osinte-nucleus.ads \
- s-osinte.adb<s-osinte-nucleus.adb \
- s-osprim.adb<s-osprim-nucleus.adb \
- s-parame.adb<s-parame-vxworks.adb \
- s-taprop.adb<s-taprop-posix.adb \
- s-taspri.ads<s-taspri-posix.ads \
- s-tpopsp.adb<s-tpopsp-posix.adb \
- $(DUMMY_SOCKETS_TARGET_PAIRS)
-
- LIBRARY_VERSION := $(LIB_VERSION)
- GNATRTL_SOCKETS_OBJS =
-endif
-
ifeq ($(EH_MECHANISM),-gcc)
LIBGNAT_TARGET_PAIRS += \
a-exexpr.adb<a-exexpr-gcc.adb \
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index c0ca2f3..06031b1 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -4165,8 +4165,13 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
? is_required
: (Is_Inlined (gnat_entity) ? is_enabled : is_disabled);
bool public_flag = Is_Public (gnat_entity) || imported_p;
+ /* Subprograms marked both Intrinsic and Always_Inline need not
+ have a body of their own. */
bool extern_flag
- = (Is_Public (gnat_entity) && !definition) || imported_p;
+ = ((Is_Public (gnat_entity) && !definition)
+ || imported_p
+ || (Convention (gnat_entity) == Convention_Intrinsic
+ && Has_Pragma_Inline_Always (gnat_entity)));
bool artificial_flag = !Comes_From_Source (gnat_entity);
/* The semantics of "pure" in Ada essentially matches that of "const"
in the back-end. In particular, both properties are orthogonal to