cpp_define (pfile, "_OPENACC=201711");
if (flag_openmp)
- cpp_define (pfile, "_OPENMP=201511");
+ cpp_define (pfile, "_OPENMP=202111");
for (i = 0; i < NUM_INT_N_ENTS; i ++)
if (int_n_enabled_p[i])
C ObjC Var(warn_deprecated_non_prototype) Init(-1) Warning
Warn about calls with arguments to functions declared without parameters.
+Wdeprecated-openmp
+C ObjC C++ ObjC++ Warning Var(warn_deprecated_openmp) Init(1)
+Warn about deprecated OpenMP code.
+
Wdeprecated-variadic-comma-omission
C++ ObjC++ Var(warn_deprecated_variadic_comma_omission) Warning
Warn about deprecated omission of comma before ... in varargs function declaration.
Wdeprecated-non-prototype
UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-non-prototype)
+Wdeprecated-openmp
+UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-openmp) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wdeprecated-openmp)
+
Wdeprecated-variadic-comma-omission
UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-variadic-comma-omission)
if (strcmp ("primary", p) == 0)
kind = OMP_CLAUSE_PROC_BIND_PRIMARY;
else if (strcmp ("master", p) == 0)
+ {
+ warning_at (clause_loc, OPT_Wdeprecated_openmp,
+ "%<master%> affinity deprecated since OpenMP 5.1, "
+ "use %<primary%>");
kind = OMP_CLAUSE_PROC_BIND_MASTER;
+ }
else if (strcmp ("close", p) == 0)
kind = OMP_CLAUSE_PROC_BIND_CLOSE;
else if (strcmp ("spread", p) == 0)
char *p_name, omp_clause_mask mask, tree *cclauses,
bool *if_p)
{
+ warning_at (loc, OPT_Wdeprecated_openmp,
+ "%<master%> construct deprecated since OpenMP 5.1, use %<masked%>");
tree block, clauses, ret;
strcat (p_name, " master");
if (flag_tm)
stmt = c_finish_transaction (loc, stmt, this_in);
else
- error_at (loc,
+ error_at (loc,
keyword == RID_TRANSACTION_ATOMIC
? G_("%<__transaction_atomic%> without transactional memory "
"support enabled")
error_at (loc, "call to %<__builtin_operator_new%> "
"does not select replaceable global "
"allocation function");
- else
+ else
error_at (loc, "call to %<__builtin_operator_delete%> "
"does not select replaceable global "
"deallocation function");
if (TREE_CODE (ret) == CALL_EXPR)
SET_EXPR_LOCATION (ret, combined_loc);
return cp_expr (ret, combined_loc);
-}
+}
/* Parse __builtin_offsetof.
if (strcmp ("primary", p) == 0)
kind = OMP_CLAUSE_PROC_BIND_PRIMARY;
else if (strcmp ("master", p) == 0)
+ {
+ warning_at (location, OPT_Wdeprecated_openmp,
+ "%<master%> affinity deprecated since OpenMP 5.1, "
+ "use %<primary%>");
kind = OMP_CLAUSE_PROC_BIND_MASTER;
+ }
else if (strcmp ("close", p) == 0)
kind = OMP_CLAUSE_PROC_BIND_CLOSE;
else if (strcmp ("spread", p) == 0)
tree clauses, sb, ret;
unsigned int save;
location_t loc = cp_lexer_peek_token (parser->lexer)->location;
+ warning_at (loc, OPT_Wdeprecated_openmp,
+ "%<master%> construct deprecated since OpenMP 5.1, use %<masked%>");
strcat (p_name, " master");
-Wdangling-else -Wdangling-pointer -Wdangling-pointer=@var{n}
-Wdate-time
-Wno-deprecated -Wno-deprecated-declarations -Wno-designated-init
+-Wno-deprecated-openmp
-Wdisabled-optimization
-Wno-discarded-array-qualifiers -Wno-discarded-qualifiers
-Wno-div-by-zero -Wdouble-promotion
Attributes}) marked as deprecated by using the @code{deprecated}
attribute.
+@opindex Wno-deprecated-openmp
+@opindex Wdeprecated-openmp
+@item -Wno-deprecated-openmp
+Do not warn about deprecated OpenMP code.
+
@opindex Wno-overflow
@opindex Woverflow
@item -Wno-overflow
cpp_define (pfile, "_OPENACC=201711");
if (flag_openmp)
- cpp_define (pfile, "_OPENMP=201511");
+ cpp_define (pfile, "_OPENMP=202111");
/* The defines below are necessary for the TARGET_* macros.
and warnings}.
@gccoptlist{-Waliasing -Wall -Wampersand -Warray-bounds
-Wc-binding-type -Wcharacter-truncation -Wconversion
--Wdo-subscript -Wfunction-elimination -Wimplicit-interface
--Wimplicit-procedure -Wintrinsic-shadow -Wuse-without-only
--Wintrinsics-std -Wline-truncation -Wno-align-commons
+-Wno-deprecated-openmp -Wdo-subscript -Wfunction-elimination
+-Wimplicit-interface -Wimplicit-procedure -Wintrinsic-shadow
+-Wuse-without-only -Wintrinsics-std -Wline-truncation -Wno-align-commons
-Wno-overwrite-recursive -Wno-tabs -Wreal-q-constant -Wsurprising
-Wunderflow -Wunused-parameter -Wrealloc-lhs -Wrealloc-lhs-all
-Wfrontend-loop-interchange -Wtarget-lifetime -fmax-errors=@var{n}
Warn about implicit conversions between different types and kinds. This
option does @emph{not} imply @option{-Wconversion}.
+@opindex Wdeprecated-openmp
+@cindex warnings
+@item -Wdeprecated-openmp
+Warn for usage of deprecated OpenMP code.
+
@opindex Wexternal-argument-mismatch
@cindex warnings, argument mismatch
@cindex argment mismatch, warnings
Fortran Var(warn_conversion_extra) Warning
Warn about most implicit conversions.
+Wdeprecated-openmp
+Fortran Var(warn_deprecated_openmp) Warning Init(1)
+; Documented in C
+
Wdo-subscript
Fortran Var(warn_do_subscript) Warning LangEnabledBy(Fortran,Wextra)
Warn about possibly incorrect subscripts in do loops.
Wconversion-extra
LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wconversion-extra)
+Wdeprecated-openmp
+UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-openmp) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wdeprecated-openmp)
+
Wdo-subscript
LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wdo-subscript)
if (gfc_match ("primary )") == MATCH_YES)
c->proc_bind = OMP_PROC_BIND_PRIMARY;
else if (gfc_match ("master )") == MATCH_YES)
- c->proc_bind = OMP_PROC_BIND_MASTER;
+ {
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> affinity "
+ "policy at %C deprecated since OpenMP 5.1, use "
+ "%<primary%>");
+ c->proc_bind = OMP_PROC_BIND_MASTER;
+ }
else if (gfc_match ("spread )") == MATCH_YES)
c->proc_bind = OMP_PROC_BIND_SPREAD;
else if (gfc_match ("close )") == MATCH_YES)
match
gfc_match_omp_parallel_master (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
return match_omp (EXEC_OMP_PARALLEL_MASTER, OMP_PARALLEL_CLAUSES);
}
match
gfc_match_omp_parallel_master_taskloop (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
return match_omp (EXEC_OMP_PARALLEL_MASTER_TASKLOOP,
(OMP_PARALLEL_CLAUSES | OMP_TASKLOOP_CLAUSES)
& ~(omp_mask (OMP_CLAUSE_IN_REDUCTION)));
match
gfc_match_omp_parallel_master_taskloop_simd (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
return match_omp (EXEC_OMP_PARALLEL_MASTER_TASKLOOP_SIMD,
(OMP_PARALLEL_CLAUSES | OMP_TASKLOOP_CLAUSES
| OMP_SIMD_CLAUSES)
match
gfc_match_omp_master (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
if (gfc_match_omp_eos () != MATCH_YES)
{
gfc_error ("Unexpected junk after $OMP MASTER statement at %C");
match
gfc_match_omp_master_taskloop (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
return match_omp (EXEC_OMP_MASTER_TASKLOOP, OMP_TASKLOOP_CLAUSES);
}
match
gfc_match_omp_master_taskloop_simd (void)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "%<master%> construct at %C deprecated"
+ " since OpenMP 5.1, use %<masked%>");
return match_omp (EXEC_OMP_MASTER_TASKLOOP_SIMD,
OMP_TASKLOOP_CLAUSES | OMP_SIMD_CLAUSES);
}
{
/* For TARGET, non-C_PTR are deprecated and handled as
has_device_addr. */
+ gfc_warning (OPT_Wdeprecated_openmp, "Non-C_PTR type "
+ "argument at %L is deprecated, use HAS_DEVICE_ADDR",
+ &n->where);
gfc_omp_namelist *n2 = n;
n = n->next;
if (last)
if (n->sym->ts.type != BT_DERIVED
|| !n->sym->ts.u.derived->ts.is_iso_c)
{
+ gfc_warning (OPT_Wdeprecated_openmp, "Non-C_PTR type "
+ "argument at %L is deprecated, use USE_DEVICE_ADDR",
+ &n->where);
n = n->next;
if (last)
last->next = n;
# error _OPENMP not defined
#endif
-#if _OPENMP != 201511
+#if _OPENMP != 202111
# error _OPENMP defined to wrong value
#endif
/* PR c/70436 */
-/* { dg-additional-options "-Wparentheses" } */
+/* { dg-additional-options "-Wparentheses -Wno-deprecated-openmp" } */
int a, b, c;
void bar (void);
/* PR c/70436 */
-/* { dg-additional-options "-Wparentheses -fno-openmp" } */
+/* { dg-additional-options "-Wparentheses -fno-openmp -Wno-deprecated-openmp" } */
int a, b, c;
void bar (void);
/* { dg-additional-options "-Wno-volatile" { target c++ } } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
int arr[64], arr2[64];
struct S { int a[4]; } k;
short arr4[4];
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef enum omp_allocator_handle_t
#if __cplusplus >= 201103L
: __UINTPTR_TYPE__
#ifndef __cplusplus
_Static_assert (_Alignof(A1) == _Alignof(B1), "wrong alignment");
#elif __cplusplus >= 201103L
- static_assert (alignof(A1) == alignof(B1), "wrong alignment");
+ static_assert (alignof(A1) == alignof(B1), "wrong alignment");
#endif
}
/* { dg-do compile } */
-/* { dg-options "-fopenmp" } */
+/* { dg-options "-fopenmp -Wno-deprecated-openmp" } */
void
f1 (void)
+// { dg-additional-options "-Wno-deprecated-openmp" }
void f0 (void);
void
/* { dg-do compile } */
/* { dg-additional-options "-std=c99" { target c } } */
-
+// { dg-additional-options "-Wno-deprecated-openmp -Wunknown-pragmas" }
typedef enum omp_allocator_handle_t
#if __cplusplus >= 201103L
: __UINTPTR_TYPE__
for (int i = 0; i < 64; i++)
ll++;
#pragma omp taskgroup task_reduction (+:r2) allocate (r2)
- #pragma omp mastked taskloop \
+ #pragma omp masked taskloop \
private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) num_tasks (nta) collapse(1) untied if(i1) final(fi) mergeable priority (pp) \
reduction(default, +:r) in_reduction(+:r2) filter (d)
for (int i = 0; i < 64; i++)
/* { dg-do compile } */
/* { dg-additional-options "-std=c99" { target c } } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef enum omp_allocator_handle_t
#if __cplusplus >= 201103L
: __UINTPTR_TYPE__
omp_sync_hint_speculative = 0x8,
omp_lock_hint_speculative = omp_sync_hint_speculative
} omp_sync_hint_t;
-
+
typedef struct __attribute__((__aligned__ (sizeof (void *)))) omp_depend_t {
char __omp_depend_t__[2 * sizeof (void *)];
} omp_depend_t;
+// { dg-additional-options "-Wno-deprecated-openmp" }
int foo (int, int, int *);
int bar (int, int, int *);
int foobar (int, int, int *);
for (i = 0; i < 3; i++)
waldo (7);
#pragma omp parallel
- #pragma omp master
+ #pragma omp master
waldo (8);
}
+// { dg-additional-options "-Wno-deprecated-openmp" }
void f0 (void);
void f1 (void);
#pragma omp declare variant /* { dg-error "expected '\\(' before end of line" } */
/* { dg-additional-options "-Wno-volatile" { target c++ } } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
int arr[64], arr2[64];
struct S { int a[4]; } k;
short arr4[4];
-void
+// { dg-additional-options "-Wno-deprecated-openmp" }
+ void
foo (int *p)
{
int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1;
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo (void);
int v;
#ifdef __cplusplus
+// { dg-additional-options "-Wno-deprecated-openmp" }
#ifdef __cplusplus
extern "C" {
#endif
+// { dg-additional-options "-Wno-deprecated-openmp" }
#ifdef __cplusplus
extern "C" {
#endif
+// { dg-additional-options "-Wno-deprecated-openmp" }
int r, l;
void
+// { dg-additional-options "-Wno-deprecated-openmp" }
void bar (int *);
void
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (int *a)
{
--- /dev/null
+// { dg-additional-options "-Wopenmp" }
+int
+main()
+{
+ int x = 0;
+ #pragma omp parallel
+ for (int i = 0; i < 8; ++i)
+ {
+ #pragma omp master // { dg-warning "'master' construct deprecated since OpenMP 5.1, use 'masked' \\\[-Wdeprecated-openmp\\\]" }
+ {
+ ++x;
+ }
+ }
+ for (int i = 0; i < 8; ++i)
+ {
+ #pragma omp parallel master // { dg-warning "'master' construct deprecated since OpenMP 5.1, use 'masked' \\\[-Wdeprecated-openmp\\\]" }
+ {
+ ++x;
+ }
+ }
+ return 0;
+}
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (void)
{
/* PR c/100902 */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (int *ptr)
{
/* PR middle-end/61486 */
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#pragma omp declare target
void dosomething (int *a, int n, int m);
#pragma omp end declare target
/* PR c/85696 */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#ifndef __cplusplus
void
foo (int n, int a[][n])
/* PR middle-end/85956 */
/* { dg-do compile } */
-/* { dg-additional-options "-O2 -Wall" } */
+/* { dg-additional-options "-O2 -Wall -Wno-deprecated-openmp" } */
void
foo (int n, void *p)
/* PR c++/98187 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp-simd -O2 -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp-simd -O2 -fdump-tree-gimple -Wno-deprecated-openmp" } */
/* { dg-final { scan-tree-dump-times "#pragma omp simd" 17 "gimple" } } */
void
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int f00, f01, f02, f03, f04, f05, f06, f07, f08, f09;
int f12, f13, f14, f15, f16, f17, f18, f19;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int *r00, *r01, *r02, *r03, *r04, *r05;
int *r13, *r14, *r15, *r16, *r17, *r18, *r19;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int r00, r01, r02;
/* PR middle-end/99928 */
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
int
foo (void)
{
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int j00a, j00b, j01a, j01b, j02a, j02b, j03a, j03b;
int j06a, j06b, j07a, j07b, j08a, j08b, j09a, j09b, j10a, j10b;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int j00a, j00b, j01a, j01b, j02a, j02b, j03a, j03b, j04a, j04b;
int j06a, j06b, j07a, j07b, j08a, j08b, j09a, j09b, j10a, j10b;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int l00, l01, l02, l03, l04, l05, l06, l07;
int l10, l11, l12, l13, l14, l15, l16, l17, l18;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int l00, l01, l02, l03, l04, l07, l08, l09;
int l10, l11;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int l00, l01, l05, l06, l07, l08;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int j00, j01, j02, j03, j04, j06, j07, j08, j09;
int j10;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int j00, j01, j02, j03, j04, j06, j07, j08, j09;
int j10;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
void
foo (void)
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int r00, r01, r02, r03, r04, r05;
int r13, r14, r15, r16, r17, r18, r19;
/* PR middle-end/99928 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple" } */
+/* { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" } */
int r00[4], r01[4], r02[4], r03[4], r04[4], r05[4];
int r13[4], r14[4], r15[4], r16[4], r17[4], r18[4], r19[4];
/* { dg-do compile } */
-/* { dg-options "-fopenmp" } */
+/* { dg-options "-fopenmp -Wno-deprecated-openmp" } */
typedef enum omp_event_handle_t
{
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (void)
{
// { dg-do compile { target c++11 } }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef enum omp_allocator_handle_t
: __UINTPTR_TYPE__
{
// { dg-do compile { target c++11 } }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef enum omp_allocator_handle_t
: __UINTPTR_TYPE__
{
// { dg-do compile { target c++11 } }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (int x)
{
// { dg-do compile }
-// { dg-options "-fopenmp -fdump-tree-omplower" }
+// { dg-options "-fopenmp -fdump-tree-omplower -Wno-deprecated-openmp" }
void bar();
void foo()
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo(int i)
{
int j;
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo()
{
#pragma omp master
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo(int i)
{
int j;
-// { dg-additional-options "-Wno-volatile" }
+// { dg-additional-options "-Wno-volatile -Wno-deprecated-openmp" }
int arr[64], arr2[64];
struct S { int a[4]; } k;
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern void bar(int);
void foo (void)
}
/* Yes, this is legal -- structured-block contains statement contains
- openmp-construct contains master-construct. */
+ openmp-construct contains masked-construct. */
#pragma omp master
#pragma omp master
#pragma omp master
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void f1(void)
{
#pragma omp master asdf /* { dg-error "expected" } */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-omplower" } */
+/* { dg-options "-fopenmp -fdump-tree-omplower -Wno-deprecated-openmp" } */
extern void bar(int);
/* PR c++/24513 */
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
struct S
{
void foo (int *p)
// PR middle-end/29965
// Test that OpenMP construct bodies which never return don't cause ICEs.
// { dg-do compile }
-// { dg-options "-O2 -fopenmp" }
+// { dg-options "-O2 -fopenmp -Wno-deprecated-openmp" }
extern void baz () __attribute__ ((noreturn));
// This is invalid code, but we don't emit diagnostics for it, nevertheless
// we test that we don't ICE on it.
// { dg-do compile }
-// { dg-options "-O2 -fopenmp" }
+// { dg-options "-O2 -fopenmp -Wno-deprecated-openmp" }
void
foo1 ()
// { dg-do compile }
// { dg-require-effective-target c++11 }
-// { dg-additional-options "-g" }
+// { dg-additional-options "-g -Wno-deprecated-openmp" }
int main()
{
// { dg-do compile }
// { dg-require-effective-target c++11 }
-// { dg-additional-options "-g" }
+// { dg-additional-options "-g -Wno-deprecated-openmp" }
int main()
{
// PR c++/79664
// { dg-do compile }
// { dg-options "-std=c++14 -fopenmp -Winvalid-constexpr -pedantic-errors" }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
constexpr int
f1 ()
{
// PR c++/94477
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo ();
template <int>
// PR c++/94512
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo ();
// PR c++/24734
// { dg-do compile }
-// { dg-options "-fopenmp -fdump-tree-gimple" }
+// { dg-options "-fopenmp -fdump-tree-gimple -Wno-deprecated-openmp" }
int i;
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <stdio.h>
extern float average (float, float, float);
void
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <stdio.h>
#include <stdlib.h>
float
/* { dg-do compile } */
/* { dg-options "-fopenmp -std=c23" } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include "../../g++.dg/gomp/attrs-1.C"
/* { dg-do compile } */
/* { dg-options "-fopenmp -std=c23" } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include "../../g++.dg/gomp/attrs-2.C"
/* { dg-do compile } */
/* { dg-options "-fopenmp -std=c23" } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (int x)
{
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo(int i)
{
int j;
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo()
{
#pragma omp master
// { dg-do compile }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void foo(int i)
{
int j;
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern void bar(int);
void foo (void)
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void f1(void)
{
#pragma omp master asdf /* { dg-error "expected" } */
/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-ompexp" } */
+/* { dg-options "-fopenmp -fdump-tree-ompexp -Wno-deprecated-openmp" } */
extern void bar(int);
/* { dg-do compile } */
-/* { dg-options "-fopenmp" } */
+/* { dg-options "-fopenmp -Wno-deprecated-openmp" } */
void
f1 (void)
/* PR debug/104517 */
/* { dg-do compile } */
-/* { dg-options "-O1 -fcompare-debug -fopenmp -fno-tree-ter -save-temps" } */
+/* { dg-options "-O1 -fcompare-debug -fopenmp -fno-tree-ter -save-temps -Wno-deprecated-openmp" } */
typedef enum omp_allocator_handle_t
{
/* PR middle-end/29965 */
/* Test that OpenMP construct bodies which never return don't cause ICEs. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fopenmp" } */
+/* { dg-options "-O2 -fopenmp -Wno-deprecated-openmp" } */
extern void baz (void) __attribute__ ((noreturn));
/* PR middle-end/35818 */
/* { dg-do compile } */
-/* { dg-options "-fopenmp" } */
+/* { dg-options "-fopenmp -Wno-deprecated-openmp" } */
extern int a[];
/* PR middle-end/91216 */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
int r;
void
/* { dg-do compile } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
void
foo (void)
{
! Note: We don't add 'use_device_addr(B)' here;
! if we do, it will fail with an illegal memory access (why?).
- !$omp target data use_device_ptr(p)
+ !$omp target data use_device_ptr(p) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use USE_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
call sub(p, B)
call sub(C, B) ! C is not mapped -> 'from' ptr == NULL
!$omp end target data
- integer :: i, j
- integer, dimension (10, 10) :: a
+! { dg-additional-options "-Wno-deprecated-openmp" }
+
+integer :: i, j
+integer, dimension (10, 10) :: a
!$omp parallel do default(none)proc_bind(master)shared(a)
do i = 1, 10
j = 4
+! { dg-additional-options "-Wno-deprecated-openmp" }
module omp_lib_kinds
use iso_c_binding, only: c_int, c_intptr_t
implicit none
! { dg-do compile }
+! { dg-additional-options "-Wno-deprecated-openmp" }
SUBROUTINE A12( X, XOLD, N, TOL )
REAL X(*), XOLD(*), TOL
INTEGER N
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
REAL FUNCTION READ_NEXT()
REAL, POINTER :: TMP
!$OMP SINGLE
! { dg-do compile }
-!
-! This failed to compile the declare variant directive due to the C_PTR
+! { dg-additional-options "-Wno-deprecated-openmp" }
+! This failed to compile the declare variant directive due to the C_PTR
! arguments to foo being recognised as INTEGER(8)
program adjust_args
call foo(c_loc(cv), c_loc(av), N)
!$omp end parallel
!$omp end target data
-
+
contains
subroutine foo_variant(c_d_bv, c_d_av, n)
use iso_c_binding, only: c_ptr, c_f_pointer
real, pointer :: f_d_bv(:)
real, pointer :: f_d_av(:)
integer :: i
-
+
call c_f_pointer(c_d_bv, f_d_bv, [n])
call c_f_pointer(c_d_av, f_d_av, [n])
!$omp target teams loop is_device_ptr(f_d_bv, f_d_av)
f_d_bv(i) = f_d_av(i) * i
end do
end subroutine
-
-
+
+
subroutine foo(c_bv, c_av, n)
use iso_c_binding, only: c_ptr, c_f_pointer
type(c_ptr), intent(in) :: c_bv, c_av
real, pointer :: f_av(:)
integer :: i
!$omp declare variant(foo_variant) &
- !$omp match(construct={parallel})
-
+ !$omp match(construct={parallel})
+
call c_f_pointer(c_bv, f_bv, [n])
call c_f_pointer(c_av, f_av, [n])
!$omp parallel loop
! { dg-do compile }
-!
-! Ensure that C_PTR and C_FUNPTR are reported as incompatible types in variant
+! { dg-additional-options "-Wno-deprecated-openmp" }
+! Ensure that C_PTR and C_FUNPTR are reported as incompatible types in variant
! argument lists
program adjust_args
call foo(c_loc(cv), c_loc(av), N)
!$omp end parallel
!$omp end target data
-
+
contains
subroutine foo_variant(c_d_bv, c_d_av, n)
use iso_c_binding, only: c_funptr, c_f_pointer
real, pointer :: f_d_bv(:)
real, pointer :: f_d_av(:)
integer :: i
-
+
! call c_f_pointer(c_d_bv, f_d_bv, [n])
! call c_f_pointer(c_d_av, f_d_av, [n])
!$omp target teams loop is_device_ptr(f_d_bv, f_d_av)
f_d_bv(i) = f_d_av(i) * i
end do
end subroutine
-
-
+
+
subroutine foo(c_bv, c_av, n)
use iso_c_binding, only: c_ptr, c_f_pointer
type(c_ptr), intent(in) :: c_bv, c_av
real, pointer :: f_av(:)
integer :: i
!$omp declare variant(foo_variant) & ! { dg-error "variant 'foo_variant' and base 'foo' at .1. have incompatible types: Type mismatch in argument 'c_bv' .TYPE.c_ptr./TYPE.c_funptr.." }
- !$omp match(construct={parallel})
-
+ !$omp match(construct={parallel})
+
call c_f_pointer(c_bv, f_bv, [n])
call c_f_pointer(c_av, f_av, [n])
!$omp parallel loop
! { dg-additional-options "-cpp" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine f1
!$omp cancel parallel ! { dg-error "orphaned" }
!$omp cancel do ! { dg-error "orphaned" }
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
use iso_c_binding, only: c_intptr_t
implicit none (external, type)
+! { dg-additional-options "-Wno-deprecated-openmp" }
module main
implicit none
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module mymod
implicit none (type, external)
integer, target :: var(0:5) = [0,1,2,3,4,5]
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module mymod
implicit none (type, external)
integer, target :: var(0:5) = [0,1,2,3,4,5]
integer, target :: a(5)
- !$omp target is_device_ptr(a) ! Valid since OpenMP 5.1
+ !$omp target is_device_ptr(a) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
+
!$omp end target
- !$omp target is_device_ptr(b) ! Valid since OpenMP 5.1
+ !$omp target is_device_ptr(b) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
!$omp end target
- !$omp target is_device_ptr(c) ! Valid since OpenMP 5.1
+ !$omp target is_device_ptr(c) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
!$omp end target
- !$omp target is_device_ptr(d) ! Valid since OpenMP 5.1
+ !$omp target is_device_ptr(d) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
!$omp end target
!$omp target data map(a) use_device_addr(a) ! Should be okay
!$omp end target data
- !$omp target data map(c) use_device_ptr(c) ! Should be okay
+ !$omp target data map(c) use_device_ptr(c) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use USE_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
!$omp end target data
end subroutine test
!$omp target enter data map(to: cc, dd)
- !$omp target data use_device_addr(cc) use_device_ptr(dd)
- !$omp target is_device_ptr(cc, dd) ! Valid since OpenMP 5.1
+ !$omp target data use_device_addr(cc) use_device_ptr(dd) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use USE_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
+ !$omp target is_device_ptr(cc, dd) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
if (cc /= 131 .or. dd /= 484) stop 1
cc = 44
dd = 45
! { dg-do compile }
! { dg-additional-options "-fdump-tree-gimple" }
-
program main
use iso_c_binding
implicit none
subroutine foo (a, b)
integer, target :: a, b
- !$omp target data map(a, b) use_device_ptr(a, b)
- !$omp target is_device_ptr(a, b)
+ !$omp target data map(a, b) use_device_ptr(a, b) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use USE_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
+ !$omp target is_device_ptr(a, b) ! { dg-warning "Non-C_PTR type argument at \\(1\\) is deprecated, use HAS_DEVICE_ADDR \\\[-Wdeprecated-openmp\\\]" }
a = 42
!$omp end target
!$omp end target data
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine foo (p)
implicit none
logical :: p(:)
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
use iso_c_binding, only: c_loc
implicit none (type, external)
do j = 0, 63
a(64 * i + j) = i + j
end do
- end do
+ end do
end
subroutine f3 (a)
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine sub1
!$omp do
outer: do i = 1, 5
-! { dg-additional-options "-fdump-tree-original" }
+! { dg-additional-options "-fdump-tree-original -Wno-deprecated-openmp" }
subroutine bar
integer, target :: x, x2
!$omp end target data
!$omp target data map(z) use_device_ptr(z)
+
call foo3(z)
!$omp end target data
-end
+end
! { dg-final { scan-tree-dump-times "#pragma omp target enter data map\\(to:x\\)" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp target data map\\(always,to:x\\)" 1 "original" } }
--- /dev/null
+! { dg-additional-options "-Wno-openmp" }
+PROGRAM master_construct_dep
+ INTEGER X
+ INTEGER Y
+ X = 0
+ Y = 8
+!$OMP PARALLEL
+ DO WHILE( Y > 0 )
+!$OMP SINGLE
+ Y = Y - 1
+!$OMP END SINGLE
+!$OMP MASTER ! { dg-warning "'master' construct at \\(1\\) deprecated since OpenMP 5.1, use 'masked' \\\[-Wdeprecated-openmp\\\]" }
+ X = X + 1
+!$OMP END MASTER
+!$OMP BARRIER
+ ENDDO
+!$OMP END PARALLEL
+END PROGRAM
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine foo
integer :: i, j
!$omp taskloop
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine f1
integer i, j
!$omp do
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Cross check that it is accepted without nowait
subroutine bar()
implicit none
+! { dg-additional-options "-Wno-deprecated-openmp" }
! invalid nowait
subroutine foo
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Cross check that it is accepted without nowait
subroutine bar()
implicit none
! { dg-do compile }
! { dg-options "-fopenmp -fopenmp-simd -fdump-tree-original -O2" }
+! { dg-additional-options "-Wno-deprecated-openmp" }
include 'openmp-simd-1.f90'
! { dg-do compile }
! { dg-options "-fopenmp -fno-openmp-simd -fdump-tree-original -O2" }
+! { dg-additional-options "-Wno-deprecated-openmp" }
include 'openmp-simd-1.f90'
-! { dg-additional-options "-fdump-tree-original" }
+! { dg-additional-options "-fdump-tree-original -Wno-deprecated-openmp" }
implicit none
integer :: k, p, s, r, nth, t, f
logical(kind=2) l2
!$omp threadprivate (t)
-
+
external bar
!$omp parallel master default(none) private (k)
call bar (k)
+! { dg-additional-options "-Wno-deprecated-openmp" }
use iso_c_binding, only: c_intptr_t
implicit none (external, type)
integer, parameter :: omp_event_handle_kind = c_intptr_t
!$omp task detach (x) ! { dg-error "'x' not specified in enclosing 'parallel'" }
!$omp end task
!$omp end parallel master
-end
+end
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
integer, allocatable :: x
integer, pointer :: y
!$omp end target
!$omp target firstprivate(y) is_device_ptr(y) ! { dg-error "Symbol 'y' present on multiple clauses" }
+
!$omp end target
end
! PR fortran/48117
! { dg-do compile }
! { dg-options "-O2 -fopenmp" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine foo(x)
character(len=*), optional :: x
character(len=80) :: v
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
SUBROUTINE foo(n,array)
IMPLICIT NONE
INTEGER, INTENT (IN) :: n
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: f00, f01, f02, f03, f04, f05, f06, f07, f08, f09
subroutine foo ()
integer :: i
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } ! FIXME.
!$omp distribute parallel do firstprivate (f00) default(none)
do i = 1, 64
f00 = f00 + 1
end do
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f01\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f01\\)" "gimple" } }
!$omp distribute parallel do simd firstprivate (f01) default(none)
do i = 1, 64
do i = 1, 64
f05 = f05 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } ! FIXME.
!$omp parallel do firstprivate (f06) default(none)
do i = 1, 64
f06 = f06 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f07\\)" "gimple" } }
!$omp parallel do simd firstprivate (f07) default(none)
do i = 1, 64
f13 = f13 + 1
!$omp end target parallel
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f14\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } ! FIXME.
!$omp target parallel do firstprivate (f14) default(none) defaultmap(none)
do i = 1, 64
f14 = f14 + 1
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f15\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f15\\)" "gimple" } }
!$omp target parallel do simd firstprivate (f15) default(none) defaultmap(none)
do i = 1, 64
f17 = f17 + 1
!$omp end target teams
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f18\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } ! FIXME: This should be on distribute instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } ! FIXME: This should be on distribute instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } ! FIXME.
!$omp target teams distribute firstprivate (f18) default(none) defaultmap(none)
do i = 1, 64
f18 = f18 + 1
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f19\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME: This should be on distribute instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME: This should be on distribute instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } ! FIXME.
!$omp target teams distribute parallel do firstprivate (f19) default(none) defaultmap(none)
do i = 1, 64
f19 = f19 + 1
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f20\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f20\\)" "gimple" } }
!$omp target teams distribute parallel do simd firstprivate (f20) default(none) defaultmap(none)
do i = 1, 64
f20 = f20 + 1
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f21\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f21\\)" "gimple" } }
!$omp target teams distribute simd firstprivate (f21) default(none) defaultmap(none)
do i = 1, 64
! { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f22\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f22\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f22\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f22\\)" "gimple" } } ! NOTE: This is an implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f22\\)" "gimple" } } ! NOTE: This is an implementation detail.
! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f22\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f22\\)" "gimple" } }
!$omp target teams loop firstprivate (f22) default(none) defaultmap(none)
do i = 1, 64
f24 = f24 + 1
end do
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } ! FIXME: This should be on distribute instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } ! FIXME: This should be on distribute instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } ! FIXME.
!$omp teams distribute firstprivate (f25) default(none)
do i = 1, 64
f25 = f25 + 1
end do
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME: This should be on distribute instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME: This should be on distribute instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } ! FIXME.
!$omp teams distribute parallel do firstprivate (f26) default(none)
do i = 1, 64
f26 = f26 + 1
end do
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f27\\)" "gimple" } }
!$omp teams distribute parallel do simd firstprivate (f27) default(none)
do i = 1, 64
f27 = f27 + 1
end do
- ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f28\\)" "gimple" } }
!$omp teams distribute simd firstprivate (f28) default(none)
do i = 1, 64
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f29\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f29\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f29\\)" "gimple" } } ! NOTE: This is an implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f29\\)" "gimple" } } ! NOTE: This is an implementation detail.
! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f29\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f29\\)" "gimple" } }
!$omp teams loop firstprivate (f29) default(none)
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: r00, r01, r02
r02 = r02 + 1
end do
! FIXME: We don't support in_reduction clause on target yet, once we do, should
- ! add testcase coverage for all combined/composite constructs with target as leaf construct.
+ ! add testcase coverage for all combined/composite constructs with target as leaf construct.
end
end module m
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: l00, l01, l02, l03, l04, l05, l06, l07
subroutine foo ()
integer :: i
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } ! FIXME.
!$omp distribute parallel do lastprivate (l00) default(none)
do i = 1, 64
l00 = i
end do
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l01\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l01\\)" "gimple" } }
!$omp distribute parallel do simd lastprivate (l01) default(none)
do i = 1, 64
l03 = i
end do
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l04\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l04\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l04\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l04\\)" "gimple" } }
!$omp master taskloop lastprivate (l04) default(none)
do i = 1, 64
l04 = i
end do
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l05\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l05\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l05\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l05\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l05\\)" "gimple" } }
!$omp master taskloop simd lastprivate (l05) default(none)
do i = 1, 64
l05 = i
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME.
!$omp parallel do lastprivate (l06) default(none)
do i = 1, 64
l06 = i
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l07\\)" "gimple" } }
!$omp parallel do simd lastprivate (l07) default(none)
do i = 1, 64
l07 = i
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp parallel loop lastprivate (j00) default(none)
do j00 = 1, 64
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l08\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l08\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l08\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l08\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l08\\)" "gimple" } }
!$omp parallel master taskloop lastprivate (l08) default(none)
do i = 1, 64
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l09\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l09\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l09\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l09\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l09\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } }
!$omp parallel master taskloop simd lastprivate (l09) default(none)
do i = 1, 64
l09 = i
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } ! FIXME: This should be on sections instead.
- ! { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } ! FIXME: This should be on sections instead.
+ ! { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp section \[^\n\r]*lastprivate\\(l10\\)" "gimple" } }
!$omp parallel sections lastprivate (l10) default(none)
l10 = 1
!$omp end parallel sections
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l11" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l11\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } ! FIXME.
!$omp target parallel do lastprivate (l11) default(none) defaultmap(none)
do i = 1, 64
l11 = i
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l12" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l12\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l12\\)" "gimple" } }
!$omp target parallel do simd lastprivate (l12) default(none) defaultmap(none)
do i = 1, 64
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j01" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j01\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j01\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp target parallel loop lastprivate (j01) default(none) defaultmap(none)
do j01 = 0, 64
end do
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l14\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l14\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l14\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } ! FIXME.
!$omp target teams distribute parallel do lastprivate (l14) default(none) defaultmap(none)
do i = 1, 64
l14 = i
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l15\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l15\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l15\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l15\\)" "gimple" } }
!$omp target teams distribute parallel do simd lastprivate (l15) default(none) defaultmap(none)
do i = 1, 64
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j02" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j02\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j02\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp target teams loop lastprivate (j02) default(none) defaultmap(none)
do j02 = 0, 64
end do
do i = 1, 64
l17 = i
end do
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l18\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l18\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l18\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l18\\)" "gimple" } }
!$omp taskloop simd lastprivate (l18) default(none)
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l20\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l20\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } ! FIXME.
!$omp teams distribute parallel do lastprivate (l20) default(none)
do i = 1, 64
l20 = i
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l21\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l21\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l21\\)" "gimple" } }
!$omp teams distribute parallel do simd lastprivate (l21) default(none)
do i = 1, 64
l22 = i
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j03\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp teams loop lastprivate (j03) default(none)
do j03 = 1, 64
end do
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: l00, l01, l02, l03, l04, l07, l08, l09
do i = 1, 64
l02 = i
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME.
!$omp parallel do firstprivate (l03) lastprivate (l03) default(none)
do i = 1, 64
l03 = i
end do
!$omp end parallel do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l04\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l04\\)" "gimple" } }
!$omp parallel do simd firstprivate (l04) lastprivate (l04) default(none)
! FIXME: OpenMP 5.0/5.1 broken here, conceptually it should be shared on parallel and
! firstprivate+lastprivate on sections, in GCC implementation we put firstprivate+lastprivate
! on parallel for historic reasons, but OpenMP 5.0/5.1 mistakenly say firstprivate
- ! should be on parallel and lastprivate on sections.
+ ! should be on parallel and lastprivate on sections.
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l07\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l07\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*firstprivate\\(l07\\)" "gimple" } }
!$omp end parallel sections
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l08" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l08\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } ! FIXME.
!$omp target parallel do firstprivate (l08) lastprivate (l08) default(none) defaultmap(none)
do i = 1, 64
l08 = i
!$omp end target parallel do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l09" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l09\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l09\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } }
!$omp target parallel do simd firstprivate (l09) lastprivate (l09) default(none) defaultmap(none)
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: l00, l01, l05, l06, l07, l08
do i = 1, 64
l02 = l02 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l03:1\\)" "gimple" } }
!$omp parallel do simd linear (l03) default(none)
do i = 1, 64
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l06" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l06\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } ! FIXME.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l06:1\\)" "gimple" } }
!$omp target parallel do simd linear (l06) default(none) defaultmap(none)
do i = 1, 64
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: j00, j01, j02, j03, j04, j06, j07, j08, j09
subroutine foo ()
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } }
!$omp distribute parallel do simd linear (j00) default(none)
do j00 = 1, 64
do j02 = 1, 64
end do
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j03\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } }
!$omp master taskloop simd linear (j03) default(none)
do j03 = 1, 64
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } }
!$omp parallel do simd linear (j04) default(none)
do j04 = 1, 64
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j05\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } }
!$omp parallel master taskloop simd linear (j05) default(none)
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j06\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } }
!$omp target parallel do simd linear (j06) default(none) defaultmap(none)
do j06 = 1, 64
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j08\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j08\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j08\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } }
!$omp target teams distribute parallel do simd linear (j08) default(none) defaultmap(none)
do j08 = 1, 64
!$omp target teams distribute simd linear (j09) default(none) defaultmap(none)
do j09 = 1, 64
end do
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } }
!$omp taskloop simd linear (j10) default(none)
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j11\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } }
!$omp teams distribute parallel do simd linear (j11) default(none)
do j11 = 1, 64
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: j00, j01, j02, j03, j04, j06, j07, j08, j09
subroutine foo ()
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } }
!$omp distribute parallel do simd default(none)
do j00 = 1, 64
do j02 = 1, 64
end do
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j03\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } }
!$omp master taskloop simd default(none)
do j03 = 1, 64
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } }
!$omp parallel do simd default(none)
do j04 = 1, 64
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j05\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } }
!$omp parallel master taskloop simd default(none)
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j06\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } }
!$omp target parallel do simd default(none) defaultmap(none)
do j06 = 1, 64
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j08\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j08\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j08\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } }
!$omp target teams distribute parallel do simd default(none) defaultmap(none)
do j08 = 1, 64
!$omp target teams distribute simd default(none) defaultmap(none)
do j09 = 1, 64
end do
- ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } ! NOTE: This is implementation detail.
! { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } }
!$omp taskloop simd default(none)
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j11\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } }
!$omp teams distribute parallel do simd default(none)
do j11 = 1, 64
! PR middle-end/99928
! { dg-do compile }
! { dg-options "-fopenmp -fdump-tree-gimple" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: r00, r01, r02, r03, r04, r05
subroutine foo ()
integer :: i
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } ! FIXME.
!$omp distribute parallel do reduction(+:r00) default(none)
do i = 1, 64
r00 = r00 + 1
end do
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } }
!$omp distribute parallel do simd reduction(+:r01) default(none)
do i = 1, 64
do i = 1, 64
r05 = r05 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } ! FIXME.
!$omp parallel do reduction(+:r06) default(none)
do i = 1, 64
r06 = r06 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } }
!$omp parallel do simd reduction(+:r07) default(none)
do i = 1, 64
r07 = r07 + 1
end do
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r08\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp parallel loop reduction(+:r08) default(none)
do i = 1, 64
r08 = r08 + 1
do i = 1, 64
r11 = r11 + 1
end do
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } ! FIXME: This should be on sections instead.
- ! { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } ! FIXME: This should be on sections instead.
+ ! { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } }
!$omp parallel sections reduction(+:r12) default(none)
r12 = r12 + 1
!$omp end target parallel
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r14" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } ! FIXME.
!$omp target parallel do reduction(+:r14) default(none) defaultmap(none)
do i = 1, 64
r14 = r14 + 1
end do
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r15" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r15\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } }
!$omp target parallel do simd reduction(+:r15) default(none) defaultmap(none)
do i = 1, 64
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r16" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r16\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r16\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp target parallel loop reduction(+:r16) default(none) defaultmap(none)
do i = 1, 64
r16 = r16 + 1
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r19\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } ! FIXME.
!$omp target teams distribute parallel do reduction(+:r19) default(none) defaultmap(none)
do i = 1, 64
r19 = r19 + 1
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r20\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } }
!$omp target teams distribute parallel do simd reduction(+:r20) default(none) defaultmap(none)
do i = 1, 64
! { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r22" "gimple" } }
! { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r22\\)" "gimple" } }
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r22\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp target teams loop reduction(+:r22) default(none) defaultmap(none)
do i = 1, 64
r22 = r22 + 1
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } ! FIXME.
!$omp teams distribute parallel do reduction(+:r26) default(none)
do i = 1, 64
r26 = r26 + 1
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } }
! { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } ! FIXME: This should be on for instead.
- ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } ! FIXME.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } ! FIXME: This should be on for instead.
+ ! { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } ! FIXME.
! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } }
!$omp teams distribute parallel do simd reduction(+:r27) default(none)
do i = 1, 64
r28 = r28 + 1
end do
! { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r29\\)" "gimple" } }
- ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
- ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp distribute\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
+ ! { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } ! NOTE: This is implementation detail.
!$omp teams loop reduction(+:r29) default(none)
do i = 1, 64
r29 = r29 + 1
! { dg-do compile }
! { dg-options "-fopenmp" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine foo (vara, varb, varc, vard, n)
integer :: n, vara(n), varb(*), varc(:), vard(6), vare(6)
vare(:) = 0
! { dg-do compile }
! { dg-options "-fopenmp" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
program main
integer :: x, i, n
! { dg-do compile }
! { dg-options "-fopenmp" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
program main
integer :: x, i, n
! { dg-do compile }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module target1
interface
subroutine dosomething (a, n, m)
+! { dg-additional-options "-Wno-deprecated-openmp" }
module m
implicit none
integer :: t
+! { dg-additional-options "-Wno-deprecated-openmp" }
subroutine foo()
implicit none
integer :: i, r
# error _OPENMP not defined
#endif
-#if _OPENMP != 201511
+#if _OPENMP != 202111
# error _OPENMP defined to wrong value
#endif
fputs ("\nOPENMP DISPLAY ENVIRONMENT BEGIN\n", stderr);
- fputs (" _OPENMP = '201511'\n", stderr);
+ fputs (" _OPENMP = '202111'\n", stderr);
fprintf (stderr, " [host] OMP_DYNAMIC = '%s'\n",
none->icvs.dyn_var ? "TRUE" : "FALSE");
# endif
ialias_redirect (omp_set_dynamic)
ialias_redirect (omp_get_dynamic)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
ialias_redirect (omp_set_nested)
ialias_redirect (omp_get_nested)
-#pragma GCC diagnostic pop
ialias_redirect (omp_set_num_threads)
ialias_redirect (omp_in_parallel)
ialias_redirect (omp_get_max_threads)
omp_set_dynamic (!!*set);
}
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
void
omp_set_nested_ (const int32_t *set)
{
{
omp_set_nested (!!*set);
}
-#pragma GCC diagnostic pop
void
omp_set_num_threads_ (const int32_t *set)
return omp_get_dynamic ();
}
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
int32_t
omp_get_nested_ (void)
{
return omp_get_nested ();
}
-#pragma GCC diagnostic pop
int32_t
omp_in_parallel_ (void)
return icv->dyn_var;
}
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
void
omp_set_nested (int val)
{
return (icv->max_active_levels_var > 1
&& icv->max_active_levels_var > omp_get_active_level ());
}
-#pragma GCC diagnostic pop
void
omp_set_schedule (omp_sched_t kind, int chunk_size)
ialias (omp_set_dynamic)
ialias (omp_get_dynamic)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
ialias (omp_set_nested)
ialias (omp_get_nested)
-#pragma GCC diagnostic pop
ialias (omp_set_num_threads)
ialias (omp_set_schedule)
ialias (omp_get_schedule)
module omp_lib
use omp_lib_kinds
implicit none
- integer, parameter :: openmp_version = 201511
+ integer, parameter :: openmp_version = 202111
interface
subroutine omp_init_lock (svar)
parameter (omp_lock_hint_nonspeculative = 4)
parameter (omp_sync_hint_speculative = 8)
parameter (omp_lock_hint_speculative = 8)
- parameter (openmp_version = 201511)
+ parameter (openmp_version = 202111)
integer omp_pause_resource_kind
parameter (omp_pause_resource_kind = 4)
integer (omp_pause_resource_kind) omp_pause_soft
// { dg-do run }
// { dg-set-target-env-var OMP_PROC_BIND "true" }
-// { dg-additional-options "-Wno-deprecated-declarations" }
+// { dg-additional-options "-Wno-deprecated-declarations -Wno-deprecated-openmp" }
#include "../libgomp.c/affinity-1.c"
// { dg-do run }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
// PR c++/36308
// { dg-do run }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
// { dg-do run }
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
// { dg-do run }
// { dg-require-effective-target tls_runtime }
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <assert.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
extern "C" void abort ();
int arr[64], arr2[64], arr3[64];
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef __PTRDIFF_TYPE__ ptrdiff_t;
extern "C" void abort ();
// PR c++/24734
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern "C" void abort ();
int i;
// PR c++/26943
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <assert.h>
#include <unistd.h>
// PR c++/81130
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
struct A
{
// PR c++/81314
// { dg-do link }
+// { dg-additional-options "-Wno-deprecated-openmp" }
template <int N>
struct S {
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
void
foo (int &x, int *&y, int n, int v)
{
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
struct S { int a, b, c[2]; };
#pragma omp declare reduction (+: S : (omp_out.a += omp_in.a, omp_out.b += omp_in.b)) \
initializer (omp_priv = { 0, 0, { 0, 0 } })
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
extern "C" void abort ();
int a = 18;
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
extern "C" void abort ();
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern "C" void abort ();
int a = 18;
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef __SIZE_TYPE__ size_t;
extern "C" void abort ();
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
#include <omp.h>
#include <stdlib.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
extern "C" void abort ();
struct S { S (); S (unsigned long long int, int); ~S (); static int cnt1, cnt2, cnt3; unsigned long long int s; int t; };
/* { dg-do run } */
/* { dg-set-target-env-var OMP_CANCELLATION "true" } */
+/* { dg-additional-options "-Wno-deprecated-openmp" } */
#include <stdlib.h>
#include <unistd.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
#include <omp.h>
#include <stdlib.h>
#include <unistd.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
#ifdef __cplusplus
extern "C"
#endif
/* { dg-additional-options "-std=c99" { target c } } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */
/* { dg-additional-options "-mavx" { target avx_runtime } } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
--- /dev/null
+// { dg-do run }
+#include <omp.h>
+
+int
+main()
+{
+ int test = omp_atv_sequential; // { dg-warning "'omp_atv_sequential' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+#include <omp.h>
+
+int
+main()
+{
+ omp_lock_t lock;
+ omp_init_lock_with_hint(&lock, omp_lock_hint_contended); // { dg-warning "'omp_lock_hint_contended' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ omp_destroy_lock(&lock);
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+
+#include <omp.h>
+
+int
+main()
+{
+ omp_lock_t lock;
+ omp_init_lock_with_hint(&lock, omp_lock_hint_none); // { dg-warning "'omp_lock_hint_none' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ omp_destroy_lock(&lock);
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+#include <omp.h>
+
+int
+main()
+{
+ omp_lock_t lock;
+ omp_init_lock_with_hint(&lock, omp_lock_hint_speculative); // { dg-warning "'omp_lock_hint_speculative' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ omp_destroy_lock(&lock);
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+#include <omp.h>
+
+int
+main()
+{
+ omp_lock_t lock;
+ omp_init_lock_with_hint(&lock, omp_lock_hint_uncontended); // { dg-warning "'omp_lock_hint_uncontended' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ omp_destroy_lock(&lock);
+ return 0;
+}
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
void
foo (int x, int *y, int n, int v)
{
+// { dg-additional-options "-Wno-deprecated-openmp" }
+
struct S { int a, b, c[2]; };
#pragma omp declare reduction (+: struct S : (omp_out.a += omp_in.a, omp_out.b += omp_in.b)) \
initializer (omp_priv = { 0, 0, { 0, 0 } })
/* { dg-do run } */
/* { dg-options "-fopenmp" } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
/* PR middle-end/101167 */
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern
#ifdef __cplusplus
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef __SIZE_TYPE__ size_t;
extern
#ifdef __cplusplus
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern
#ifdef __cplusplus
"C"
/* { dg-additional-options "-std=c99" { target c } } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */
/* { dg-additional-options "-mavx" { target avx_runtime } } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
#define N 1024
long int u[N], m, n;
/* { dg-additional-options "-std=c99" { target c } } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */
/* { dg-additional-options "-mavx" { target avx_runtime } } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
/* { dg-do run } */
/* { dg-set-target-env-var OMP_PROC_BIND "false" } */
-/* { dg-additional-options "-Wno-deprecated-declarations" } */
-/* { dg-additional-options "-DINTERPOSE_GETAFFINITY -DDO_FORK -ldl -Wno-deprecated-declarations" { target *-*-linux* } } */
+/* { dg-additional-options "-DINTERPOSE_GETAFFINITY -DDO_FORK -ldl -Wno-deprecated-declarations -Wno-deprecated-openmp" { target *-*-linux* } } */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
// Test several constructs within a parallel. At one point in development,
// the critical directive clobbered the shared clause of the parallel.
/* PR debug/36617 */
/* { dg-do run } */
/* { dg-options "-g -O0" } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
int
f1 (void)
-/* { dg-additional-options "-Wno-deprecated-declarations" } */
+/* { dg-additional-options "-Wno-deprecated-openmp" } */
#include <stdlib.h>
#include <omp.h>
if (omp_get_dynamic ())
abort ();
- omp_set_nested (1);
- if (! omp_get_nested ())
+ omp_set_nested (1); // { dg-warning "'omp_set_nested' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ if (! omp_get_nested ()) // { dg-warning "'omp_get_nested' is deprecated \\\[-Wdeprecated-declarations\\\]" }
abort ();
- omp_set_nested (0);
- if (omp_get_nested ())
+ omp_set_nested (0); // { dg-warning "'omp_set_nested' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ if (omp_get_nested ()) // { dg-warning "'omp_get_nested' is deprecated \\\[-Wdeprecated-declarations\\\]" }
abort ();
omp_set_num_threads (5);
/* { dg-do run } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern void abort (void);
/* { dg-do run } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern void abort (void);
/* { dg-do run } */
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
--- /dev/null
+// { dg-do run }
+// { dg-additional-options "-Wno-deprecated-openmp" }
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main()
+{
+ if (omp_proc_bind_master != omp_proc_bind_primary) // { dg-warning "'omp_proc_bind_master' is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ abort();
+ return 0;
+}
/* PR libgomp/104385 */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <unistd.h>
int
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
+// { dg-additional-options "-Wno-deprecated-declarations -Wno-deprecated-openmp" }
extern void abort (void);
int
/* { dg-do run } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
extern void abort (void);
int a = 18;
/* { dg-do run } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
extern void abort ();
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <stdlib.h>
#include <unistd.h>
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef __SIZE_TYPE__ size_t;
extern void abort (void);
+// { dg-additional-options "-Wno-deprecated-openmp" }
typedef __SIZE_TYPE__ size_t;
extern void abort (void);
-/* { dg-additional-options "-Wno-deprecated-declarations" } */
-
#include <omp.h>
#include <stdlib.h>
main ()
{
omp_set_dynamic (0);
- omp_set_nested (1);
+ omp_set_nested (1); // { dg-warning "'omp_set_nested' is deprecated \\\[-Wdeprecated-declarations\\\]" }
#pragma omp teams thread_limit (2)
{
#pragma omp distribute dist_schedule(static,1)
/* { dg-do run } */
-
+// { dg-additional-options "-Wno-deprecated-openmp" }
#include <omp.h>
#include <stdlib.h>
#include <string.h>
! { dg-do run }
! { dg-options "-fcray-pointer" }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
use omp_lib
integer :: a, b, c, p
logical :: l
! { dg-additional-sources my-usleep.c }
-! { dg-additional-options -Wno-complain-wrong-lang }
+! { dg-additional-options "-Wno-complain-wrong-lang -Wno-deprecated-openmp" }
program main
use omp_lib
-! { dg-additional-options "-fdump-tree-original" }
-
+! { dg-additional-options "-fdump-tree-original -Wno-deprecated-openmp" }
! PR fortran/98476
program abc
-! { dg-additional-options "-fdump-tree-original" }
+! { dg-additional-options "-fdump-tree-original -Wno-deprecated-openmp" }
!
! Since OpenMP 5.1, non-TYPE(c_ptr) arguments to is_device_ptr
-! map to has_device_ptr - check this!
+! map to has_device_addr - check this!
!
! PR fortran/105318
!
if (false_) then
!$omp target device(omp_invalid_device)
!$omp end target
- end if
+ end if
end subroutine
end module m
! { dg-do run }
-! { dg-additional-options "-Wno-deprecated-declarations" }
-
+! { dg-additional-options "-Wno-deprecated-declarations -Wno-deprecated-openmp" }
use omp_lib
double precision :: d, e
C { dg-do run }
-C { dg-additional-options "-Wno-deprecated-declarations" }
+C { dg-additional-options "-Wno-deprecated-declarations -Wno-deprecated-openmp" }
USE OMP_LIB
-C { dg-do run }
-
+! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
INCLUDE "omp_lib.h"
DOUBLE PRECISION :: D, E
--- /dev/null
+! { dg-do run }
+
+program omp_atv_seq_dep
+ use omp_lib ! { dg-warning "Using parameter 'omp_atv_sequential' declared at \\(1\\) is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ integer :: x
+ x = omp_atv_sequential
+end program
--- /dev/null
+! { dg-do compile }
+
+program hint_contended_dep
+ use omp_lib ! { dg-warning "Using parameter 'omp_lock_hint_contended' declared at \\(1\\) is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ integer (kind=omp_lock_kind) :: lock
+ call omp_init_lock_with_hint(lock, omp_lock_hint_contended)
+ call omp_destroy_lock(lock)
+end program
--- /dev/null
+! { dg-do compile }
+
+program hint_none_dep
+ use omp_lib ! { dg-warning "Using parameter 'omp_lock_hint_none' declared at \\(1\\) is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ integer (kind=omp_lock_kind) :: lock
+ call omp_init_lock_with_hint(lock, omp_lock_hint_none)
+ call omp_destroy_lock(lock)
+end program
--- /dev/null
+! { dg-do compile }
+
+program hint_speculative_dep
+ use omp_lib ! { dg-warning "Using parameter 'omp_lock_hint_speculative' declared at \\(1\\) is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ integer (kind=omp_lock_kind) :: lock
+ call omp_init_lock_with_hint(lock, omp_lock_hint_speculative)
+ call omp_destroy_lock(lock)
+end program
--- /dev/null
+! { dg-do compile }
+
+program hint_uncontended_dep
+ use omp_lib ! { dg-warning "Using parameter 'omp_lock_hint_uncontended' declared at \\(1\\) is deprecated \\\[-Wdeprecated-declarations\\\]" }
+ integer (kind=omp_lock_kind) :: lock
+ call omp_init_lock_with_hint(lock, omp_lock_hint_uncontended)
+ call omp_destroy_lock(lock)
+end program
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
use omp_lib
call test_master
call test_critical
!$omp master
i = .true.
j = omp_get_thread_num () .eq. 0
-!$omp endmaster
+!$omp end master
!$omp end parallel
if (.not. (i .or. j)) stop 1
end subroutine test_master
subroutine test_critical_1 (i, j)
integer :: i, j
-!$omp critical(critical_foo)
+!$omp critical(critical_foo)
i = i + 1
!$omp end critical (critical_foo)
!$omp critical
implicit none
include "omp_lib.h"
- if (openmp_version .ne. 201511) stop 1;
+ if (openmp_version .ne. 202111) stop 1;
end program main
use omp_lib
implicit none
- if (openmp_version .ne. 201511) stop 1;
+ if (openmp_version .ne. 202111) stop 1;
end program main
-! { dg-additional-options "-fdump-tree-original" }
+! { dg-additional-options "-fdump-tree-original -Wno-deprecated-openmp" }
program main
use omp_lib
implicit none (type, external)
! { dg-do run }
! { dg-require-effective-target tls_runtime }
+! { dg-additional-options "-Wno-deprecated-openmp" }
integer, pointer, save :: thr(:)
!$omp threadprivate (thr)
integer, target :: s(3), t(3), u(3)
! { dg-do run }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
integer, dimension (6, 6) :: a
character (36) :: c
integer nthreads
! PR fortran/104949
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
implicit none (type,external)
integer, allocatable :: A(:)
A = [1,2,3,4,5,6]
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Comprehensive run-time test for use_device_addr
!
! Differs from use_device_addr-2.f90 by using a 8-byte variable (c_double)
real(c_double), target :: from_r(:), to_r(:)
! The extra function is needed as is_device_ptr
! requires non-value, non-pointer dummy arguments
-
!$omp target is_device_ptr(from_r, to_r)
call copy3_scalar_int(from_r(1), to_r(1))
!$omp end target
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Comprehensive run-time test for use_device_addr
!
! Differs from use_device_addr-1.f90 by using a 4-byte variable (c_float)
! { dg-do run }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Comprehensive run-time test for use_device_addr
!
! Tests array with array descriptor
! { dg-do run }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Comprehensive run-time test for use_device_addr
!
! Tests array with array descriptor
+! { dg-additional-options "-Wno-deprecated-openmp" }
program main
use omp_lib
implicit none
! { dg-do run }
-
+! { dg-additional-options "-Wno-deprecated-openmp" }
module target_procs
use iso_c_binding
implicit none (type, external)
! PR fortran/98858
-!
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Assumed-size array with use_device_ptr()
!
program test_use_device_ptr
! { dg-do run }
-!
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Test user_device_ptr nested within another parallel
! construct
!
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Test whether use_device_ptr properly handles OPTIONAL arguments
! (Only case of present arguments is tested)
program test_it
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Check whether absent optional arguments are properly
! handled with use_device_{addr,ptr}.
program main
! { dg-do run }
+! { dg-additional-options "-Wno-deprecated-openmp" }
! Check whether absent optional arguments are properly
! handled with use_device_{addr,ptr}.
program main