annotate clang/test/Sema/align_value.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 typedef double * __attribute__((align_value(64))) aligned_double;
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 void foo(aligned_double x, double * y __attribute__((align_value(32)))) { };
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // expected-error@+1 {{requested alignment is not a power of 2}}
anatofuz
parents:
diff changeset
8 typedef double * __attribute__((align_value(63))) aligned_double1;
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 // expected-error@+1 {{requested alignment is not a power of 2}}
anatofuz
parents:
diff changeset
11 typedef double * __attribute__((align_value(-2))) aligned_double2;
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 // expected-error@+1 {{attribute takes one argument}}
anatofuz
parents:
diff changeset
14 typedef double * __attribute__((align_value(63, 4))) aligned_double3;
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 // expected-error@+1 {{attribute takes one argument}}
anatofuz
parents:
diff changeset
17 typedef double * __attribute__((align_value())) aligned_double3a;
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 // expected-error@+1 {{attribute takes one argument}}
anatofuz
parents:
diff changeset
20 typedef double * __attribute__((align_value)) aligned_double3b;
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 // expected-error@+1 {{'align_value' attribute requires integer constant}}
anatofuz
parents:
diff changeset
23 typedef double * __attribute__((align_value(4.5))) aligned_double4;
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 // expected-warning@+1 {{'align_value' attribute only applies to a pointer or reference ('int' is invalid)}}
anatofuz
parents:
diff changeset
26 typedef int __attribute__((align_value(32))) aligned_int;
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 typedef double * __attribute__((align_value(32*2))) aligned_double5;
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 // expected-warning@+1 {{'align_value' attribute only applies to variables and typedefs}}
anatofuz
parents:
diff changeset
31 void foo() __attribute__((align_value(32)));
anatofuz
parents:
diff changeset
32