diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr44085.c | 27 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr43643.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr43560.c | 34 |
3 files changed, 85 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/gomp/pr44085.c b/gcc/testsuite/gcc.dg/gomp/pr44085.c new file mode 100644 index 00000000000..55462abe504 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/pr44085.c @@ -0,0 +1,27 @@ +/* PR middle-end/44085 */ +/* { dg-do compile } */ +/* { dg-require-effective-target tls_native } */ +/* { dg-options "-fopenmp" } */ + +int thr1, thr2; +#pragma omp threadprivate (thr1, thr2) + +void +foo (void) +{ +#pragma omp task untied /* { dg-error "enclosing task" } */ + { + thr1++; /* { dg-error "used in untied task" } */ + thr2 |= 4; /* { dg-error "used in untied task" } */ + } +} + +void +bar (void) +{ +#pragma omp task + { + thr1++; + thr2 |= 4; + } +} diff --git a/gcc/testsuite/gcc.dg/pr43643.c b/gcc/testsuite/gcc.dg/pr43643.c new file mode 100644 index 00000000000..7fbbfc255f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr43643.c @@ -0,0 +1,24 @@ +/* Contributed by Jürgen Keil <jrgn.keil@googlemail.com> */ + +/* { dg-do run } */ +/* { dg-require-profiling "-pg" } */ +/* { dg-options "-O2 -pg" } */ + +extern char *strdup (const char *); + +void +func(char *a, char *b, char *c) +{ + strdup(a); + strdup(b); + strdup(c); +} + +int +main(void) +{ + func("a", "b", "c"); + return 0; +} + +/* { dg-final { cleanup-profile-file } } */ diff --git a/gcc/testsuite/gcc.dg/torture/pr43560.c b/gcc/testsuite/gcc.dg/torture/pr43560.c new file mode 100644 index 00000000000..44abb80b193 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr43560.c @@ -0,0 +1,34 @@ +/* { dg-do run } */ +/* { dg-require-weak "" } */ + +int g_6[1][2] = {{1,1}}; +int g_34 = 0; +int *const g_82 = &g_6[0][1]; +int *g_85[2][1] __attribute__((weak)); + +void __attribute__((noinline)) +func_4 (int x) +{ + int i; + for (i = 0; i <= x; i++) { + if (g_6[0][1]) { + *g_82 = 1; + } else { + int **l_109 = &g_85[1][0]; + if (&g_82 != l_109) { + } else { + *l_109 = &g_6[0][1]; + } + *g_82 = 1; + } + } +} + +int main (void) +{ + g_85[0][0] = &g_34; + g_85[1][0] = &g_34; + func_4(1); + return 0; +} + |