]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 9 Apr 2009 12:57:47 +0000 (14:57 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 9 Apr 2009 12:57:47 +0000 (14:57 +0200)
2009-04-09  Robert Dewar  <dewar@adacore.com>

* sem_ch5.adb: Minor reformatting

2009-04-09  Vincent Celier  <celier@adacore.com>

* vms_data.ads:
Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
New qualifier /LXDEBUG=nnn for -gnatDnnn
For H820-010

* gnat_ugn.texi:
Update documentation for VMS qualifiers equivalent to -gnatGnn and
-gnatDnn

2009-04-09  Nicolas Setton  <setton@adacore.com>

* s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
to match layout of siginfo_t in sys/signal.h.

* gcc-interface/Makefile.in: Add section for x86_64 darwin.

2009-04-09  Thomas Quinot  <quinot@adacore.com>

* g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.

2009-04-09  Nicolas Setton  <setton@adacore.com>

* s-oscons-tmplt.c: Allow long lines in the generated spec.
Add generation of Darwin-specific constants needed when binding to the
pthread library.

From-SVN: r145837

gcc/ada/ChangeLog
gcc/ada/g-socket.ads
gcc/ada/gcc-interface/Makefile.in
gcc/ada/gnat_ugn.texi
gcc/ada/s-oscons-tmplt.c
gcc/ada/s-osinte-darwin.ads
gcc/ada/sem_ch5.adb
gcc/ada/vms_data.ads

index 0d2b8a06d28f0b74c34c1d13780f881849b1ee75..191ef1a554673e9c1d7667deece1e5088ab5b9b5 100644 (file)
@@ -1,3 +1,50 @@
+2009-04-09  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch5.adb: Minor reformatting
+
+2009-04-09  Vincent Celier  <celier@adacore.com>
+
+       * vms_data.ads:
+       Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
+       New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
+       New qualifier /LXDEBUG=nnn for -gnatDnnn
+       For H820-010
+
+       * gnat_ugn.texi:
+       Update documentation for VMS qualifiers equivalent to -gnatGnn and
+       -gnatDnn
+
+2009-04-09  Nicolas Setton  <setton@adacore.com>
+
+       * s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
+       to match layout of siginfo_t in sys/signal.h.
+
+       * gcc-interface/Makefile.in: Add section for x86_64 darwin.
+
+2009-04-09  Thomas Quinot  <quinot@adacore.com>
+
+       * g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.
+
+2009-04-09  Nicolas Setton  <setton@adacore.com>
+
+       * s-oscons-tmplt.c: Allow long lines in the generated spec.
+       Add generation of Darwin-specific constants needed when binding to the
+       pthread library.
+
+2009-04-09  Robert Dewar  <dewar@adacore.com>
+
+        * checks.adb:
+        (Insert_Valid_Check): Avoid unnecessary generation of junk declaration
+        when no invalid values exist, Avoid duplicate read of atomic variable.
+
+        * cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
+        (Standard_Unsigned): Set Is_Known_Valid
+
+        * sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
+       subtype declaration if no constraint.
+        (Set_Modular_Size): Set Is_Known_Valid if appropriate
+        (Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint
+
 2009-04-09  Robert Dewar  <dewar@adacore.com>
 
        * switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb,
index 39107783eb14fd4523b2a26760102d6ac17680fa..eab3c301c9ecb0d98d451cbf4ad28fb218c6d368 100644 (file)
@@ -1095,7 +1095,7 @@ private
 
    type Fd_Set is
      new System.Storage_Elements.Storage_Array (1 .. SOSC.SIZEOF_fd_set);
-   for Fd_Set'Alignment use Interfaces.C.int'Alignment;
+   for Fd_Set'Alignment use Interfaces.C.long'Alignment;
 
    type Fd_Set_Access is access all Fd_Set;
    pragma Convention (C, Fd_Set_Access);
index c431118608e04b217ea49067d99c6a1004c6a4e0..8d0d92c57070570f961b80c59481dc58b88b6cc3 100644 (file)
@@ -1729,7 +1729,25 @@ ifeq ($(strip $(filter-out darwin%,$(osys))),)
       LIBGNAT_TARGET_PAIRS += \
       system.ads<system-darwin-x86.ads
     endif
-  else
+  endif
+
+  ifeq ($(strip $(filter-out %x86_64,$(arch))),)
+    LIBGNAT_TARGET_PAIRS = \
+    a-intnam.ads<a-intnam-darwin.ads \
+    s-inmaop.adb<s-inmaop-posix.adb \
+    s-intman.adb<s-intman-posix.adb \
+    s-osinte.adb<s-osinte-darwin.adb \
+    s-osinte.ads<s-osinte-darwin.ads \
+    s-osprim.adb<s-osprim-posix.adb \
+    s-taprop.adb<s-taprop-posix.adb \
+    s-taspri.ads<s-taspri-posix.ads \
+    s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+    a-numaux.ads<a-numaux-x86.ads \
+    a-numaux.adb<a-numaux-x86.adb \
+    system.ads<system-darwin-x86_64.ads
+  endif
+
+  ifeq ($(strip $(filter-out powerpc%,$(arch))),)
     LIBGNAT_TARGET_PAIRS = \
     a-intnam.ads<a-intnam-darwin.ads \
     s-inmaop.adb<s-inmaop-posix.adb \
index 9275c22506c22748c0ab783fc9504d55ac96b615..f21095365dbd4d23c0d5db4a2c88f2776d868be7 100644 (file)
@@ -3882,8 +3882,13 @@ debug options. Certain debug options are relevant to applications
 programmers, and these are documented at appropriate points in this
 users guide.
 
+@ifclear vms
 @item -gnatD
 @cindex @option{-gnatD[nn]} (@command{gcc})
+@end ifclear
+@ifset vms
+@item /XDEBUG /LXDEBUG=nnn
+@end ifset
 Create expanded source files for source level debugging. This switch
 also suppress generation of cross-reference information
 (see @option{-gnatx}).
@@ -3949,8 +3954,13 @@ Note that @option{^-gnatg^/GNAT_INTERNAL^} implies
 so that all standard warnings and all standard style options are turned on.
 All warnings and style error messages are treated as errors.
 
+@ifclear vms
 @item -gnatG=nn
 @cindex @option{-gnatG[nn]} (@command{gcc})
+@end ifclear
+@ifset vms
+@item /EXPAND_SOURCE, /LEXPAND_SOURCE=nnn
+@end ifset
 List generated expanded code in source form.
 
 @item ^-gnath^/HELP^
@@ -20362,8 +20372,8 @@ a generic instantiation a full source location is a chain from the location
 of this construct in the generic unit to the place where this unit is
 instantiated.
 
-@cindex @option{^-m^/DIAGNOSIS_LIMIT^} (@command{gnatcheck})
-@item ^-m@i{nnn}^/DIAGNOSIS_LIMIT=@i{nnn}^
+@cindex @option{^-m^/DIAGNOSTIC_LIMIT^} (@command{gnatcheck})
+@item ^-m@i{nnn}^/DIAGNOSTIC_LIMIT=@i{nnn}^
 Maximum number of diagnoses to be sent to Stdout, @i{nnn} from o@dots{}1000,
 the default value is 500. Zero means that there is no limitation on
 the number of diagnostic messages to be printed into Stdout.
index 8298f7526def12a32a5e092ff1acd1c2e04bcb98..625f1e01cec2efda5e4116031cbddf7f341972a4 100644 (file)
@@ -32,6 +32,9 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Style_Checks ("M32766");
+--  Allow long lines
+
 */
 
 /**
 # include <termios.h>
 #endif
 
+#ifdef __APPLE__
+# include <_types.h>
+#endif
+
 #ifdef NATIVE
 #include <stdio.h>
 #define CND(name,comment) \
@@ -1205,6 +1212,46 @@ CND(WSAEDISCON,         "Disconnected")
    putchar ('\n');
 #endif
 
+#ifdef __APPLE__
+/*
+
+   -------------------------------
+   -- Darwin-specific constants --
+   -------------------------------
+
+   --  These constants may be used only within the Darwin version of the GNAT
+   --  runtime library.
+*/
+
+#define PTHREAD_SIZE __PTHREAD_SIZE__
+CND(PTHREAD_SIZE, "Pad in pthread_t")
+
+#define PTHREAD_ATTR_SIZE __PTHREAD_ATTR_SIZE__
+CND(PTHREAD_ATTR_SIZE, "Pad in pthread_attr_t")
+
+#define PTHREAD_MUTEXATTR_SIZE __PTHREAD_MUTEXATTR_SIZE__
+CND(PTHREAD_MUTEXATTR_SIZE, "Pad in pthread_mutexattr_t")
+
+#define PTHREAD_MUTEX_SIZE __PTHREAD_MUTEX_SIZE__
+CND(PTHREAD_MUTEX_SIZE, "Pad in pthread_mutex_t")
+
+#define PTHREAD_CONDATTR_SIZE __PTHREAD_CONDATTR_SIZE__
+CND(PTHREAD_CONDATTR_SIZE, "Pad in pthread_condattr_t")
+
+#define PTHREAD_COND_SIZE __PTHREAD_COND_SIZE__
+CND(PTHREAD_COND_SIZE, "Pad in pthread_cond_t")
+
+#define PTHREAD_RWLOCKATTR_SIZE __PTHREAD_RWLOCKATTR_SIZE__
+CND(PTHREAD_RWLOCKATTR_SIZE, "Pad in pthread_rwlockattr_t")
+
+#define PTHREAD_RWLOCK_SIZE __PTHREAD_RWLOCK_SIZE__
+CND(PTHREAD_RWLOCK_SIZE, "Pad in pthread_rwlock_t")
+
+#define PTHREAD_ONCE_SIZE __PTHREAD_ONCE_SIZE__
+CND(PTHREAD_ONCE_SIZE, "Pad in pthread_once_t")
+
+#endif
+
 /*
 
 end System.OS_Constants;
index d53e2c43dcabb9ec575f356288c3d7dd7959c4bf..2a3b9282b52a360cd9cd3925f719a6bd6fa17c38 100644 (file)
@@ -41,6 +41,7 @@
 --  Elaborate_Body. It is designed to be a bottom-level (leaf) package.
 
 with Interfaces.C;
+with System.OS_Constants;
 
 package System.OS_Interface is
    pragma Preelaborate;
@@ -532,7 +533,7 @@ private
    --
    --  Darwin specific signal implementation
    --
-   type Pad_Type is array (1 .. 7) of unsigned;
+   type Pad_Type is array (1 .. 7) of unsigned_long;
    type siginfo_t is record
       si_signo  : int;               --  signal number
       si_errno  : int;               --  errno association
@@ -568,37 +569,37 @@ private
 
    type pthread_attr_t is record
       sig    : long;
-      opaque : padding (1 .. 36);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_ATTR_SIZE);
    end record;
    pragma Convention (C, pthread_attr_t);
 
    type pthread_mutexattr_t is record
       sig    : long;
-      opaque : padding (1 .. 8);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_MUTEXATTR_SIZE);
    end record;
    pragma Convention (C, pthread_mutexattr_t);
 
    type pthread_mutex_t is record
       sig    : long;
-      opaque : padding (1 .. 40);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_MUTEX_SIZE);
    end record;
    pragma Convention (C, pthread_mutex_t);
 
    type pthread_condattr_t is record
       sig    : long;
-      opaque : padding (1 .. 4);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_CONDATTR_SIZE);
    end record;
    pragma Convention (C, pthread_condattr_t);
 
    type pthread_cond_t is record
       sig    : long;
-      opaque : padding (1 .. 24);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_COND_SIZE);
    end record;
    pragma Convention (C, pthread_cond_t);
 
    type pthread_once_t is record
       sig    : long;
-      opaque : padding (1 .. 4);
+      opaque : padding (1 .. System.OS_Constants.PTHREAD_ONCE_SIZE);
    end record;
    pragma Convention (C, pthread_once_t);
 
index 6ae5d7f4645ba0422aefca14409137931ead0b81..6a387d6fc31e9459af78b8cb07521ee41ca0e4aa 100644 (file)
@@ -88,8 +88,8 @@ package body Sem_Ch5 is
       Decl : Node_Id;
 
       procedure Diagnose_Non_Variable_Lhs (N : Node_Id);
-      --  N is the node for the left hand side of an assignment, and it
-      --  is not a variable. This routine issues an appropriate diagnostic.
+      --  N is the node for the left hand side of an assignment, and it is not
+      --  a variable. This routine issues an appropriate diagnostic.
 
       procedure Kill_Lhs;
       --  This is called to kill current value settings of a simple variable
index 290976591aad43bed250913421ee148f52805f4b..ada55a30a0b5565d7b943c60bfb0d66a56cdc393 100644 (file)
@@ -774,16 +774,16 @@ package VMS_Data is
    --
    --   Use full source locations references in the report file.
 
-   S_Diagnosis   : aliased constant S := "/DIAGNOSIS_LIMIT=#"              &
+   S_Diagnosis   : aliased constant S := "/DIAGNOSTIC_LIMIT=#"             &
                                             "-m#";
-   --        /DIAGNOSIS_LIMIT=500 (D)
-   --        /ERROR_LIMIT=nnn
+   --        /DIAGNOSTIC_LIMIT=500 (D)
+   --        /DIAGNOSTIC_LIMIT=nnn
    --
    --   NNN is a decimal integer in the range of 1 to 1000 and limits the
    --   number of diagnostic messages to be generated into Stdout to that
    --   number.  Once that number has been reached, gnatcheck stops
    --   to print out diagnoses into Stderr. If NNN is equal to 0, this means
-   --  that there is no limit on the number of diagnoses in Stdout
+   --   that there is no limit on the number of diagnoses in Stdout.
 
    S_Check_Mess    : aliased constant S := "/MESSAGES_PROJECT_FILE="       &
                                              "DEFAULT "                    &
@@ -1484,15 +1484,23 @@ package VMS_Data is
                                             "-gnatm999999";
    --  NODOC (see /ERROR_LIMIT)
 
-   S_GCC_Expand  : aliased constant S := "/EXPAND_SOURCE=#"                 &
+   S_GCC_Expand  : aliased constant S := "/EXPAND_SOURCE "                 &
                                             "-gnatG";
-   --        /NOEXPAND_SOURCE[=nnn] (D)
+   --        /NOEXPAND_SOURCE (D)
    --        /EXPAND_SOURCE
    --
    --   Produces a listing of the expanded code in Ada source form. For
    --   example, all tasking constructs are reduced to appropriate run-time
+   --   library calls. The maximum line length for the listing 72.
+
+   S_GCC_Lexpand : aliased constant S := "/LEXPAND_SOURCE=#"               &
+                                            "-gnatG#";
+   --        /LEXPAND_SOURCE=nnn
+   --
+   --   Produces a listing of the expanded code in Ada source form. For
+   --   example, all tasking constructs are reduced to appropriate run-time
    --   library calls. The parameter is the maximum line length for the
-   --   listing (default is 72).
+   --   listing.
 
    S_GCC_Extend  : aliased constant S := "/EXTENSIONS_ALLOWED "            &
                                             "-gnatX";
@@ -3330,9 +3338,9 @@ package VMS_Data is
                                              "-gnatWn";
    --  NODOC (see /WIDE_CHARACTER_ENCODING)
 
-   S_GCC_Xdebug  : aliased constant S := "/XDEBUG=#"                        &
-                                             "-gnatD";
-   --        /NOXDEBUG[=nnn] (D)
+   S_GCC_Xdebug  : aliased constant S := "/XDEBUG "                        &
+                                            "-gnatD";
+   --        /NOXDEBUG (D)
    --        /XDEBUG
    --
    --   Output expanded source files for source level debugging.
@@ -3342,8 +3350,21 @@ package VMS_Data is
    --   refer to the generated file. This allows source level debugging using
    --   the generated code which is sometimes useful for complex code, for
    --   example to find out exactly which part of a complex construction
-   --   raised an exception. The parameter if present is the maximum line
-   --   length for the output (default 72).
+   --   raised an exception. The maximum line length for the output is 72.
+
+   S_GCC_Lxdebug : aliased constant S := "/LXDEBUG=#"                      &
+                                            "-gnatD=#";
+   --        /LXDEBUG=nnn
+   --
+   --   Output expanded source files for source level debugging.
+   --   The expanded source (see /EXPAND_SOURCE) is written to files
+   --   with names formed by appending "_DG" to the input file name,
+   --   The debugging information generated by the /DEBUG qualifier will then
+   --   refer to the generated file. This allows source level debugging using
+   --   the generated code which is sometimes useful for complex code, for
+   --   example to find out exactly which part of a complex construction
+   --   raised an exception. The parameter is the maximum line length for
+   --   the output.
 
    S_GCC_Xref    : aliased constant S := "/XREF="                          &
                                             "GENERATE "                    &
@@ -3383,6 +3404,7 @@ package VMS_Data is
                      S_GCC_Error   'Access,
                      S_GCC_ErrorX  'Access,
                      S_GCC_Expand  'Access,
+                     S_GCC_Lexpand 'Access,
                      S_GCC_Extend  'Access,
                      S_GCC_Ext     'Access,
                      S_GCC_File    'Access,
@@ -3446,6 +3468,7 @@ package VMS_Data is
                      S_GCC_No_Back 'Access,
                      S_GCC_All_Back'Access,
                      S_GCC_Xdebug  'Access,
+                     S_GCC_Lxdebug 'Access,
                      S_GCC_Xref    'Access);
 
    ----------------------------