// RUN: %clang_cc1 %s -x c++ -std=c++11 -triple x86_64-pc-linux -fsyntax-only -verify -Wno-c++17-extensions // RUN: %clang_cc1 %s -x c++ -std=c++11 -triple x86_64-windows-msvc -fsyntax-only -verify=msvc -Wno-c++17-extensions // expected-no-diagnostics // Check we return non-zero values for supported attributes as per // wg21.link/P2552 static_assert(__has_cpp_attribute(assume)); // The standard does not prescribe a behavior for [[carries_dependency]] static_assert(__has_cpp_attribute(deprecated)); static_assert(__has_cpp_attribute(fallthrough)); static_assert(__has_cpp_attribute(likely)); static_assert(__has_cpp_attribute(unlikely)); static_assert(__has_cpp_attribute(maybe_unused)); static_assert(__has_cpp_attribute(nodiscard)); static_assert(__has_cpp_attribute(noreturn)); // We do not support [[no_unique_address]] in MSVC emulation mode static_assert(__has_cpp_attribute(no_unique_address)); // msvc-error {{static assertion failed}}