mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-23 20:36:04 +00:00

exactly the same as clang's existing [[clang::fallthrough]] attribute, which has been updated to have the same semantics. The one significant difference is that [[fallthrough]] is ill-formed if it's not used immediately before a switch label (even when -Wimplicit-fallthrough is disabled). To support that, we now build a CFG of any function that uses a '[[fallthrough]];' statement to check. In passing, fix some bugs with our support for statement attributes -- in particular, diagnose their use on declarations, rather than asserting. llvm-svn: 262881
15 lines
463 B
C++
15 lines
463 B
C++
// RUN: %clang_cc1 -std=c++11 -verify -fsyntax-only -fms-extensions -Wno-deprecated -Wc++14-extensions %s
|
|
|
|
// NOTE: use -Wno-deprecated to avoid cluttering the output with deprecated
|
|
// warnings
|
|
|
|
[[deprecated("1")]] int function_1();
|
|
// expected-warning@-1 {{use of the 'deprecated' attribute is a C++14 extension}}
|
|
|
|
[[gnu::deprecated("3")]] int function_3();
|
|
|
|
int __attribute__ (( deprecated("2") )) function_2();
|
|
|
|
__declspec(deprecated("4")) int function_4();
|
|
|