// RUN: %clang_cc1 -DSIZE_T_64 -fsyntax-only -Wno-strict-prototypes -triple x86_64-linux -verify %s
// RUN: %clang_cc1 -fsyntax-only -Wno-strict-prototypes -triple i386-freebsd -verify %s
// __builtin_assume_aligned's second parameter is size_t, which may be 32 bits,
// so test differently when size_t is 32 bits and when it is 64 bits.
int
int
int
int
int
int
int
int
int
int
int
int
void ; // expected-warning {{'assume_aligned' attribute only applies to return values that are pointers}}
int ; // expected-warning {{'assume_aligned' attribute only applies to return values that are pointers}}
void *; // no-warning
void *; // expected-warning {{requested alignment must be 4294967296 bytes or smaller; maximum alignment assumed}}
int j ; // expected-warning {{'assume_aligned' attribute only applies to Objective-C methods and functions}}
void *; // no-warning
void *; // no-warning
void *; // expected-error {{requested alignment is not a power of 2}}
void *; // no-warning
void *; // expected-error {{'assume_aligned' attribute takes at least 1 argument}}
void *; // expected-error {{'assume_aligned' attribute takes at least 1 argument}}
void *; // expected-error {{'assume_aligned' attribute takes no more than 2 arguments}}