teak-llvm/clang/test/Sema/mips16_attr_allowed.c
Richard Smith 66e7168f8d PR17666: Instead of allowing an initial identifier argument in any attribute
which we don't think can't have one, only allow it in the tiny number of
attributes which opts into this weird parse rule.

I've manually checked that the handlers for all these attributes can in fact
cope with an identifier as the argument. This is still somewhat terrible; we
should move more fully towards picking the parsing rules based on the
attribute, and make the Parse -> Sema interface more type-safe.

llvm-svn: 193295
2013-10-24 01:07:54 +00:00

28 lines
976 B
C

// RUN: %clang_cc1 -triple mipsel-linux-gnu -fsyntax-only -verify %s
void foo32();
void foo16();
void __attribute__((nomips16)) foo32();
void __attribute__((mips16)) foo16();
void __attribute__((nomips16)) foo32_();
void __attribute__((mips16)) foo16_();
void foo32_();
void foo16_();
void foo32__() __attribute__((nomips16));
void foo32__() __attribute__((mips16));
void foo32a() __attribute__((nomips16(0))) ; // expected-error {{'nomips16' attribute takes no arguments}}
void __attribute__((mips16(1))) foo16a(); // expected-error {{'mips16' attribute takes no arguments}}
void __attribute__((nomips16(1, 2))) foo32b(); // expected-error {{'nomips16' attribute takes no arguments}}
void __attribute__((mips16(1, 2))) foo16b(); // expected-error {{'mips16' attribute takes no arguments}}
__attribute((nomips16)) int a; // expected-error {{attribute only applies to functions}}
__attribute((mips16)) int b; // expected-error {{attribute only applies to functions}}