Makefile.in: Remove references to nucleus.
authorArnaud Charlet <charlet@adacore.com>
Fri, 20 Feb 2015 11:40:20 +0000 (11:40 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 20 Feb 2015 11:40:20 +0000 (12:40 +0100)
* 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

gcc/ada/ChangeLog
gcc/ada/gcc-interface/Makefile.in
gcc/ada/gcc-interface/decl.c

index c06fb21..c255ca6 100644 (file)
@@ -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.
index df2d84c..60c1b5b 100644 (file)
@@ -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 \
index c0ca2f3..06031b1 100644 (file)
@@ -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