/* { dg-do compile } */ double *bar (void); void foo (double *ptr, int i) { double *a = __builtin_assume_aligned (ptr, 16, 8, 7); /* { dg-error "too many arguments to function" } */ double *b = __builtin_assume_aligned (bar (), 16); double *c = __builtin_assume_aligned (bar (), 16, 8); double *d = __builtin_assume_aligned (ptr, i, ptr); /* { dg-error "non-integer argument 3 in call to function" } */ double *e = __builtin_assume_aligned (ptr, i, *ptr); /* { dg-error "non-integer argument 3 in call to function" } */ *a = 0.0; *b = 0.0; *c = 0.0; *d = 0.0; *e = 0.0; }