aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-01-09 13:26:26 +0000
committerSebastian Huber <sh@gcc.gnu.org>2015-01-09 13:26:26 +0000
commit88d24a099faa4dd225df68408663a74e11214f2d (patch)
tree79ce12b224cae12a453f940ad5728842f81ddb78 /gcc
parent2f2782497acb6efa025c1f832a37a0afeb3925f7 (diff)
downloadgcc-88d24a099faa4dd225df68408663a74e11214f2d.zip
gcc-88d24a099faa4dd225df68408663a74e11214f2d.tar.gz
gcc-88d24a099faa4dd225df68408663a74e11214f2d.tar.bz2
typeof-2.c: Add checks for non-atomic types.
gcc/testsuite/gcc.dg/typeof-2.c gcc/testsuite/ChangeLog * gcc.dg/typeof-2.c: Add checks for non-atomic types. From-SVN: r219381
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/typeof-2.c31
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c962149..a529f19 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * gcc.dg/typeof-2.c: Add checks for non-atomic types.
+
2015-01-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/64410
diff --git a/gcc/testsuite/gcc.dg/typeof-2.c b/gcc/testsuite/gcc.dg/typeof-2.c
index e916900..21ef5b0 100644
--- a/gcc/testsuite/gcc.dg/typeof-2.c
+++ b/gcc/testsuite/gcc.dg/typeof-2.c
@@ -2,6 +2,8 @@
/* { dg-do compile } */
/* { dg-options "-std=c11" } */
+/* Check that the qualifiers are discarded for atomic types. */
+
extern int i;
extern int * p;
@@ -26,3 +28,32 @@ void f(void)
__auto_type ari = ri;
int **pari = &ari;
}
+
+/* Check that the qualifiers are preserved for non-atomic types. */
+
+extern int const j;
+
+extern int volatile k;
+
+extern int * restrict q;
+
+extern int const nci;
+extern __typeof (nci) j;
+
+extern int volatile nvi;
+extern __typeof (nvi) k;
+
+extern int * restrict nri;
+extern __typeof (nri) q;
+
+void g(void)
+{
+ __auto_type aci = nci;
+ int const *paci = &aci;
+
+ __auto_type avi = nvi;
+ int volatile *pavi = &avi;
+
+ __auto_type ari = nri;
+ int * restrict *pari = &ari;
+}