[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Tue, 6 Nov 2012 09:59:02 +0000 (10:59 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 6 Nov 2012 09:59:02 +0000 (10:59 +0100)
2012-11-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Check_Constrained_Object): Do nothing if the
renamed object is a limited record.

2012-11-06  Bernard Banner  <banner@adacore.com>

* sysdep.c (_getpagesize): New. Minor reformatting.

From-SVN: r193218

gcc/ada/ChangeLog
gcc/ada/sem_ch8.adb
gcc/ada/sysdep.c

index dd82c97..b1099c3 100644 (file)
@@ -1,3 +1,12 @@
+2012-11-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (Check_Constrained_Object): Do nothing if the
+       renamed object is a limited record.
+
+2012-11-06  Bernard Banner  <banner@adacore.com>
+
+       * sysdep.c (_getpagesize): New. Minor reformatting.
+
 2012-11-06  Robert Dewar  <dewar@adacore.com>
 
        * sem_prag.adb: Minor reformatting.
index ec94ed6..d2bd01d 100644 (file)
@@ -731,6 +731,15 @@ package body Sem_Ch8 is
             elsif Is_Unchecked_Union (Etype (Nam)) then
                null;
 
+            --  If a record is limited its size is invariant. This is the case
+            --  in particular with record types with an access discirminant
+            --  that are used in iterators. This is an optimization, but it
+            --  also prevents typing anomalies when the prefix is further
+            --  expanded.
+
+            elsif Is_Limited_Record (Etype (Nam)) then
+               null;
+
             else
                Subt := Make_Temporary (Loc, 'T');
                Remove_Side_Effects (Nam);
index a2c4d86..1eec8b9 100644 (file)
@@ -938,30 +938,37 @@ __gnat_is_file_not_found_error (int errno_val) {
 int
 _sigismember (sigset_t *set, int signum)
 {
-    return sigismember (set, signum);
+  return sigismember (set, signum);
 }
 
 int
 _sigaddset (sigset_t *set, int signum)
 {
-   return sigaddset (set, signum);
+  return sigaddset (set, signum);
 }
 
 int
 _sigdelset (sigset_t *set, int signum)
 {
-   return sigdelset (set, signum);
+  return sigdelset (set, signum);
 }
 
 int
 _sigemptyset (sigset_t *set)
 {
-    return sigemptyset (set);
+  return sigemptyset (set);
 }
 
 int
-_sigfillset(sigset_t *set)
+_sigfillset (sigset_t *set)
 {
-    return sigfillset (set);
+  return sigfillset (set);
+}
+
+#include <unistd.h>
+int
+_getpagesize (void)
+{
+  return getpagesize ();
 }
 #endif