brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · a39c0c0 Raw
64 lines · cpp
1// RUN: %clang_cc1 %s -verify=expected,wall -fno-builtin -Wno-pedantic -Werror=comment -Wno-error=abi -Wfatal-errors=assume -Wno-fatal-errors=assume -Wno-format2// RUN: %clang_cc1 %s -verify=expected,wno-all,pedantic,format -fno-builtin -Wno-all -Werror=comment -Wno-error=abi -Werror=assume -Wformat3 4#define diagnose_if(...) __attribute__((diagnose_if(__VA_ARGS__)))5 6#ifndef EMTY_WARNING_GROUP7void bougus_warning() diagnose_if(true, "oh no", "warning", "bogus warning") {} // expected-error {{unknown warning group 'bogus warning'}}8 9void show_in_system_header() diagnose_if(true, "oh no", "warning", "assume", "Banane") {} // expected-error {{'diagnose_if' attribute takes no more than 4 arguments}}10#endif // EMTY_WARNING_GROUP11 12template <bool b>13void diagnose_if_wcomma() diagnose_if(b, "oh no", "warning", "comma") {}14 15template <bool b>16void diagnose_if_wcomment() diagnose_if(b, "oh no", "warning", "comment") {}17 18void empty_warning_group() diagnose_if(true, "oh no", "warning", "") {} // expected-error {{unknown warning group ''}}19void empty_warning_group_error() diagnose_if(true, "oh no", "error", "") {} // expected-error {{unknown warning group ''}}20 21void diagnose_if_wabi_default_error() diagnose_if(true, "ABI stuff", "error", "abi") {}22void diagnose_assume() diagnose_if(true, "Assume diagnostic", "warning", "assume") {}23 24void Wall() diagnose_if(true, "oh no", "warning", "all") {}25void Wpedantic() diagnose_if(true, "oh no", "warning", "pedantic") {}26void Wformat_extra_args() diagnose_if(true, "oh no", "warning", "format-extra-args") {}27 28void call() {29  diagnose_if_wcomma<true>(); // expected-warning {{oh no}}30  diagnose_if_wcomma<false>();31  diagnose_if_wcomment<true>(); // expected-error {{oh no}}32  diagnose_if_wcomment<false>();33 34#pragma clang diagnostic push35#pragma clang diagnostic ignored "-Wcomma"36  diagnose_if_wcomma<true>();37  diagnose_if_wcomment<true>(); // expected-error {{oh no}}38#pragma clang diagnostic pop39 40#pragma clang diagnostic push41#pragma clang diagnostic ignored "-Wcomment"42  diagnose_if_wcomma<true>(); // expected-warning {{oh no}}43  diagnose_if_wcomment<true>();44#pragma clang diagnostic pop45 46  diagnose_if_wcomma<true>(); // expected-warning {{oh no}}47  diagnose_if_wcomment<true>(); // expected-error {{oh no}}48 49  diagnose_if_wabi_default_error(); // expected-warning {{ABI stuff}}50  diagnose_assume(); // expected-error {{Assume diagnostic}}51 52  // Make sure that the -Wassume diagnostic isn't fatal53  diagnose_if_wabi_default_error(); // expected-warning {{ABI stuff}}54 55  Wall(); // wall-warning {{oh no}}56  Wpedantic(); // pedantic-warning {{oh no}}57  Wformat_extra_args(); // format-warning {{oh no}}58 59#pragma clang diagnostic push60#pragma clang diagnostic ignored "-Wformat"61  Wformat_extra_args();62#pragma clang diagnostic pop63}64