brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 6605d24 Raw
59 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -Wattribute-preprocessor-tokens -verify %s2// RUN: %clang_cc1 -Wattribute-preprocessor-tokens -E %s | FileCheck %s3// RUN: %clang_cc1 -x c -fsyntax-only -verify=c %s4// RUN: %clang_cc1 -x c -E %s | FileCheck %s5 6#define ATTR_STR(X) [[clang::annotate(#X)]]7#define ATTR_PASTE(X, Y) [[clang::annotate("test", X ## Y)]]8 9[[clang::assume(#)]] void f1();           // c-error {{expected expression}} \10                                          // expected-warning {{'#' is not allowed in an attribute argument list}}11 12[[clang::assume(##)]] void f2();          // c-error {{expected expression}} \13                                          // expected-warning {{'##' is not allowed in an attribute argument list}}14 15[[clang::assume(1#2#3)]] void f3();       // c-error {{use of this expression in an 'assume' attribute requires parentheses}} \16                                          // c-error {{expected ')'}} \17                                          // c-note {{to match this '('}} \18                                          // expected-warning {{'#' is not allowed in an attribute argument list}} \19                                          // expected-warning {{'#' is not allowed in an attribute argument list}}20 21[[unknown::unknown(#)]] void f4();        // c-warning {{unknown attribute 'unknown::unknown' ignored}} \22                                          // expected-warning {{'#' is not allowed in an attribute argument list}}23 24[[unknown::unknown(##)]] void f5();       // c-warning {{unknown attribute 'unknown::unknown' ignored}} \25                                          // expected-warning {{'##' is not allowed in an attribute argument list}}26 27[[unknown::unknown(1#2#3)]] void f6();    // c-warning {{unknown attribute 'unknown::unknown' ignored}} \28                                          // expected-warning {{'#' is not allowed in an attribute argument list}} \29                                          // expected-warning {{'#' is not allowed in an attribute argument list}}30 31[[clang::assume(%:)]] void f7();          // c-error {{expected expression}} \32                                          // expected-warning {{'%:' is not allowed in an attribute argument list}}33 34 35[[clang::assume(%:%:)]] void f8();        // c-error {{expected expression}} \36                                          // expected-warning {{'%:%:' is not allowed in an attribute argument list}}37 38[[clang::assume(1%:2%:3)]] void f9();     // c-error {{use of this expression in an 'assume' attribute requires parentheses}} \39                                          // c-error {{expected ')'}} \40                                          // c-note {{to match this '('}} \41                                          // expected-warning {{'%:' is not allowed in an attribute argument list}} \42                                          // expected-warning {{'%:' is not allowed in an attribute argument list}}43 44[[unknown::unknown(%:)]] void f10();      // c-warning {{unknown attribute 'unknown::unknown' ignored}} \45                                          // expected-warning {{'%:' is not allowed in an attribute argument list}}46 47[[unknown::unknown(%:%:)]] void f11();    // c-warning {{unknown attribute 'unknown::unknown' ignored}} \48                                          // expected-warning {{'%:%:' is not allowed in an attribute argument list}}49 50[[unknown::unknown(1%:2%:3)]] void f12(); // c-warning {{unknown attribute 'unknown::unknown' ignored}} \51                                          // expected-warning {{'%:' is not allowed in an attribute argument list}} \52                                          // expected-warning {{'%:' is not allowed in an attribute argument list}}53 54ATTR_STR(stringify) void f13();55// CHECK: {{\[\[}}clang{{::}}annotate("stringify"){{\]\]}} void f13();56 57ATTR_PASTE(1, 2) void f14();58// CHECK: {{\[\[}}clang{{::}}annotate("test", 12){{\]\]}} void f14();59