forked from OSchip/llvm-project
[OPENMP] Allow all lvalues in 'depend' clause.
According to upcoming OpenMP 5.0 all addressable lvalue expressions are allowed in deoend clause. llvm-svn: 309309
This commit is contained in:
parent
c47fcf0ae5
commit
463a9fea1e
|
@ -8519,6 +8519,8 @@ def err_omp_expected_var_name_member_expr : Error<
|
|||
"expected variable name%select{| or data member of current class}0">;
|
||||
def err_omp_expected_var_name_member_expr_or_array_item : Error<
|
||||
"expected variable name%select{|, data member of current class}0, array element or array section">;
|
||||
def err_omp_expected_addressable_lvalue_or_array_item : Error<
|
||||
"expected addressable lvalue expression, array element or array section">;
|
||||
def err_omp_expected_named_var_member_or_array_expression: Error<
|
||||
"expected expression containing only member accesses and/or array sections based on named variables">;
|
||||
def err_omp_bit_fields_forbidden_in_clause : Error<
|
||||
|
|
|
@ -10486,23 +10486,26 @@ Sema::ActOnOpenMPDependClause(OpenMPDependClauseKind DepKind,
|
|||
}
|
||||
OpsOffs.push_back({RHS, OOK});
|
||||
} else {
|
||||
// OpenMP [2.11.1.1, Restrictions, p.3]
|
||||
// A variable that is part of another variable (such as a field of a
|
||||
// structure) but is not an array element or an array section cannot
|
||||
// appear in a depend clause.
|
||||
auto *DE = dyn_cast<DeclRefExpr>(SimpleExpr);
|
||||
auto *ASE = dyn_cast<ArraySubscriptExpr>(SimpleExpr);
|
||||
auto *OASE = dyn_cast<OMPArraySectionExpr>(SimpleExpr);
|
||||
if (!RefExpr->IgnoreParenImpCasts()->isLValue() ||
|
||||
(!ASE && !DE && !OASE) || (DE && !isa<VarDecl>(DE->getDecl())) ||
|
||||
(ASE &&
|
||||
!ASE->getBase()
|
||||
->getType()
|
||||
.getNonReferenceType()
|
||||
->isPointerType() &&
|
||||
!ASE->getBase()->getType().getNonReferenceType()->isArrayType())) {
|
||||
Diag(ELoc, diag::err_omp_expected_var_name_member_expr_or_array_item)
|
||||
<< 0 << RefExpr->getSourceRange();
|
||||
Diag(ELoc, diag::err_omp_expected_addressable_lvalue_or_array_item)
|
||||
<< RefExpr->getSourceRange();
|
||||
continue;
|
||||
}
|
||||
bool Suppress = getDiagnostics().getSuppressAllDiagnostics();
|
||||
getDiagnostics().setSuppressAllDiagnostics(/*Val=*/true);
|
||||
ExprResult Res = CreateBuiltinUnaryOp(SourceLocation(), UO_AddrOf,
|
||||
RefExpr->IgnoreParenImpCasts());
|
||||
getDiagnostics().setSuppressAllDiagnostics(Suppress);
|
||||
if (!Res.isUsable() && !isa<OMPArraySectionExpr>(SimpleExpr)) {
|
||||
Diag(ELoc, diag::err_omp_expected_addressable_lvalue_or_array_item)
|
||||
<< RefExpr->getSourceRange();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,21 +36,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
foo();
|
||||
#pragma omp target depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target depend(in : argv[1][1] = '2')
|
||||
foo();
|
||||
#pragma omp target depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target depend (in : main)
|
||||
foo();
|
||||
#pragma omp target depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
|
|
@ -38,21 +38,21 @@ int tmain(T argc, S **argv, R *env[]) {
|
|||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target enter data map(to: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend(in : argv[1][1] = '2') // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : tmain) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend (in : tmain)
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
@ -113,21 +113,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target enter data map(to: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend(in : argv[1][1] = '2')
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend (in : main)
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target enter data map(to: i) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target enter data map(to: i) depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
|
|
@ -38,21 +38,21 @@ int tmain(T argc, S **argv, R *env[]) {
|
|||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target exit data map(from: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend(in : argv[1][1] = '2') // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : tmain) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend (in : tmain)
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
@ -113,21 +113,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target exit data map(from: i) depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend(in : argv[1][1] = '2')
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend (in : main)
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target exit data map(from: i) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target exit data map(from: i) depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
|
|
@ -36,21 +36,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
foo();
|
||||
#pragma omp target parallel depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target parallel depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target parallel depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target parallel depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target parallel depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel depend(in : argv[1][1] = '2')
|
||||
foo();
|
||||
#pragma omp target parallel depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target parallel depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target parallel depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target parallel depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel depend (in : main)
|
||||
foo();
|
||||
#pragma omp target parallel depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target parallel depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target parallel for depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target parallel for simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for simd depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for simd depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for simd depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target parallel for simd depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target parallel for simd depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target simd depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target simd depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target simd depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target simd depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target simd depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -36,21 +36,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
foo();
|
||||
#pragma omp target teams depend (out: ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target teams depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target teams depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target teams depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
foo();
|
||||
#pragma omp target teams depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams depend(in : argv[1][1] = '2')
|
||||
foo();
|
||||
#pragma omp target teams depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target teams depend (in : argv[0])
|
||||
foo();
|
||||
#pragma omp target teams depend (in : ) // expected-error {{expected expression}}
|
||||
foo();
|
||||
#pragma omp target teams depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams depend (in : main)
|
||||
foo();
|
||||
#pragma omp target teams depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target teams depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
foo();
|
||||
#pragma omp target teams depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target teams distribute depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target teams distribute parallel for depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target teams distribute parallel for simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for simd depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for simd depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for simd depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute parallel for simd depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute parallel for simd depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -37,21 +37,21 @@ int main(int argc, char **argv, char *env[]) {
|
|||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (out: ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target teams distribute simd depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute simd depend(in : argv[1][1] = '2')
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute simd depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (in : argv[0])
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (in : ) // expected-error {{expected expression}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute simd depend (in : main)
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target teams distribute simd depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
#pragma omp target teams distribute simd depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
for (i = 0; i < argc; ++i) foo();
|
||||
|
|
|
@ -35,14 +35,14 @@ int tmain(T argc, S **argv, R *env[]) {
|
|||
#pragma omp target update to(z) depend(source) // expected-error {{expected expression}} expected-warning {{missing ':' after dependency type - ignoring}}
|
||||
#pragma omp target update to(z) depend(in : argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}}
|
||||
#pragma omp target update to(z) depend(out: ) // expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
#pragma omp target update to(z) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : argv[1][1] = '2') // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : argv[0])
|
||||
#pragma omp target update to(z) depend(in : ) // expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(in : tmain) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : tmain)
|
||||
#pragma omp target update to(z) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
#pragma omp target update to(z) depend(in : argv[ // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
#pragma omp target update to(z) depend(in : argv[: // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
|
@ -83,14 +83,14 @@ int main(int argc, char **argv, char *env[]) {
|
|||
#pragma omp target update to(z) depend(source) // expected-error {{expected expression}} expected-warning {{missing ':' after dependency type - ignoring}}
|
||||
#pragma omp target update to(z) depend(in : argc)) // expected-warning {{extra tokens at the end of '#pragma omp target update' are ignored}}
|
||||
#pragma omp target update to(z) depend(out: ) // expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
#pragma omp target update to(z) depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : argv[1][1] = '2')
|
||||
#pragma omp target update to(z) depend(in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : argv[0])
|
||||
#pragma omp target update to(z) depend(in : ) // expected-error {{expected expression}}
|
||||
#pragma omp target update to(z) depend(in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : main)
|
||||
#pragma omp target update to(z) depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp target update to(z) depend(in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
#pragma omp target update to(z) depend(in : argv[ // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
#pragma omp target update to(z) depend(in : argv[: // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
|
|
|
@ -28,14 +28,14 @@ int main(int argc, char **argv, char *env[]) {
|
|||
#pragma omp task depend (source) // expected-error {{expected expression}} expected-warning {{missing ':' after dependency type - ignoring}}
|
||||
#pragma omp task depend (in : argc)) // expected-warning {{extra tokens at the end of '#pragma omp task' are ignored}}
|
||||
#pragma omp task depend (out: ) // expected-error {{expected expression}}
|
||||
#pragma omp task depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected variable name, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp task depend (inout : foobool(argc)), depend (in, argc) // expected-error {{expected addressable lvalue expression, array element or array section}} expected-warning {{missing ':' after dependency type - ignoring}} expected-error {{expected expression}}
|
||||
#pragma omp task depend (out :S1) // expected-error {{'S1' does not refer to a value}}
|
||||
#pragma omp task depend(in : argv[1][1] = '2') // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp task depend (in : vec[1]) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp task depend(in : argv[1][1] = '2')
|
||||
#pragma omp task depend (in : vec[1]) // expected-error {{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp task depend (in : argv[0])
|
||||
#pragma omp task depend (in : ) // expected-error {{expected expression}}
|
||||
#pragma omp task depend (in : main) // expected-error {{expected variable name, array element or array section}}
|
||||
#pragma omp task depend(in : a[0]) // expected-error{{expected variable name, array element or array section}}
|
||||
#pragma omp task depend (in : main)
|
||||
#pragma omp task depend(in : a[0]) // expected-error{{expected addressable lvalue expression, array element or array section}}
|
||||
#pragma omp task depend (in : vec[1:2]) // expected-error {{ value is not an array or pointer}}
|
||||
#pragma omp task depend (in : argv[ // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
#pragma omp task depend (in : argv[: // expected-error {{expected expression}} expected-error {{expected ']'}} expected-error {{expected ')'}} expected-note {{to match this '['}} expected-note {{to match this '('}}
|
||||
|
|
Loading…
Reference in New Issue