This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/67500] New: OpenMP ICE with invalid safelen/simdlen/alignment expressions
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 08 Sep 2015 15:12:34 +0000
- Subject: [Bug c/67500] New: OpenMP ICE with invalid safelen/simdlen/alignment expressions
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67500
Bug ID: 67500
Summary: OpenMP ICE with invalid safelen/simdlen/alignment
expressions
Product: gcc
Version: 5.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
/* */
/* { dg-do compile } */
/* { dg-options "-fopenmp" } */
#pragma omp declare simd simdlen(d) /* { dg-error "clause expression must
be positive constant integer expression" } */
void f1 (int); /* { dg-error "undeclared here" "" {
target *-*-* } 5 } */
#pragma omp declare simd simdlen(0.5) /* { dg-error "clause expression must
be positive constant integer expression" } */
void f2 (int);
#pragma omp declare simd simdlen(-2) /* { dg-error "clause expression must
be positive constant integer expression" } */
void f3 (int);
#pragma omp declare simd simdlen(0) /* { dg-error "clause expression must
be positive constant integer expression" } */
void f4 (int);
void
foo (int *p)
{
int i;
#pragma omp simd safelen(d) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i) /* { dg-error "undeclared" "" { target
*-*-* } 18 } */
;
#pragma omp simd safelen(0.5) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd safelen(-2) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd safelen(0) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd aligned(p:d) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd aligned(p:0.5) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd aligned(p:-2) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
#pragma omp simd aligned(p:0) /* { dg-error "must be positive
constant integer expression" } */
for (i = 0; i < 16; ++i)
;
}
has various ICEs due to bad checking of error conditions on these 3 clauses in
the C FE (C++ FE is ok).