2009-12-16 04:14:24 +08:00
// RUN: %clang_cc1 -fsyntax-only -verify %s
2008-08-01 06:40:48 +08:00
2011-01-25 11:51:08 +08:00
int x __attribute__ ( ( constructor ) ) ; // expected-warning {{'constructor' attribute only applies to functions}}
2008-08-01 06:40:48 +08:00
int f ( ) __attribute__ ( ( constructor ) ) ;
int f ( ) __attribute__ ( ( constructor ( 1 ) ) ) ;
2014-01-03 05:26:14 +08:00
int f ( ) __attribute__ ( ( constructor ( 1 , 2 ) ) ) ; // expected-error {{'constructor' attribute takes no more than 1 argument}}
2013-11-21 09:50:40 +08:00
int f ( ) __attribute__ ( ( constructor ( 1.0 ) ) ) ; // expected-error {{'constructor' attribute requires an integer constant}}
2014-07-24 22:51:23 +08:00
int f ( ) __attribute__ ( ( constructor ( 0x100000000 ) ) ) ; // expected-error {{integer constant expression evaluates to value 4294967296 that cannot be represented in a 32-bit unsigned integer type}}
2008-08-01 06:40:48 +08:00
2011-01-25 11:51:08 +08:00
int x __attribute__ ( ( destructor ) ) ; // expected-warning {{'destructor' attribute only applies to functions}}
2008-08-01 06:40:48 +08:00
int f ( ) __attribute__ ( ( destructor ) ) ;
int f ( ) __attribute__ ( ( destructor ( 1 ) ) ) ;
2014-01-03 05:26:14 +08:00
int f ( ) __attribute__ ( ( destructor ( 1 , 2 ) ) ) ; // expected-error {{'destructor' attribute takes no more than 1 argument}}
2013-11-21 09:50:40 +08:00
int f ( ) __attribute__ ( ( destructor ( 1.0 ) ) ) ; // expected-error {{'destructor' attribute requires an integer constant}}
2008-08-01 06:40:48 +08:00