Daniel Dunbar | 8fbe78f | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s |
Eli Friedman | 7044b76 | 2009-03-27 21:06:47 +0000 | [diff] [blame] | 2 | |
Douglas Gregor | 77e274f | 2010-06-18 21:30:25 +0000 | [diff] [blame] | 3 | __attribute((regparm(2))) int x0(void); |
Aaron Ballman | 9d69509 | 2013-07-30 14:10:17 +0000 | [diff] [blame] | 4 | __attribute((regparm(1.0))) int x1(void); // expected-error{{'regparm' attribute requires an integer constant}} |
Douglas Gregor | 77e274f | 2010-06-18 21:30:25 +0000 | [diff] [blame] | 5 | __attribute((regparm(-1))) int x2(void); // expected-error{{'regparm' parameter must be between 0 and 3 inclusive}} |
| 6 | __attribute((regparm(5))) int x3(void); // expected-error{{'regparm' parameter must be between 0 and 3 inclusive}} |
Aaron Ballman | b724338 | 2013-07-23 19:30:11 +0000 | [diff] [blame] | 7 | __attribute((regparm(5,3))) int x4(void); // expected-error{{'regparm' attribute takes one argument}} |
Douglas Gregor | 77e274f | 2010-06-18 21:30:25 +0000 | [diff] [blame] | 8 | |
| 9 | void __attribute__((regparm(3))) x5(int); |
| 10 | void x5(int); // expected-note{{previous declaration is here}} |
Richard Smith | 463abbb | 2013-02-21 23:15:05 +0000 | [diff] [blame] | 11 | void __attribute__((regparm(2))) x5(int); // expected-error{{function declared with regparm(2) attribute was previously declared with the regparm(3) attribute}} |