This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/67500] New: OpenMP ICE with invalid safelen/simdlen/alignment expressions


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).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]