summaryrefslogtreecommitdiffstats
path: root/gcc/ada
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 09:59:02 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 09:59:02 +0000
commit8f553582a426afacb5d01ab07e3aae02f349dfc8 (patch)
tree34e5664bb162ada3f35c5be48280ecdd20060373 /gcc/ada
parent2d9671b910fbfd304ef04d3b07e951fc25823a31 (diff)
downloadppe42-gcc-8f553582a426afacb5d01ab07e3aae02f349dfc8.tar.gz
ppe42-gcc-8f553582a426afacb5d01ab07e3aae02f349dfc8.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193218 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog9
-rw-r--r--gcc/ada/sem_ch8.adb9
-rw-r--r--gcc/ada/sysdep.c19
3 files changed, 31 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index dd82c971064..b1099c3fb0f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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.
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index ec94ed627f8..d2bd01d9ba4 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -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);
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index a2c4d8607bc..1eec8b96f88 100644
--- a/gcc/ada/sysdep.c
+++ b/gcc/ada/sysdep.c
@@ -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
OpenPOWER on IntegriCloud