diff clang/test/Sema/attr-naked.cpp @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 1d019706d866
children
line wrap: on
line diff
--- a/clang/test/Sema/attr-naked.cpp	Wed Jul 21 10:27:27 2021 +0900
+++ b/clang/test/Sema/attr-naked.cpp	Wed Nov 09 17:45:10 2022 +0900
@@ -1,4 +1,6 @@
 // RUN: %clang_cc1 %s -verify -fsyntax-only -triple arm-none-linux
+// RUN: %clang_cc1 %s -verify -fsyntax-only -fms-compatibility -DDECLSPEC -triple i686-pc-win32
+
 class Foo {
   void bar();
   static void bar2();
@@ -13,3 +15,12 @@
 void __attribute__((naked)) Foo::bar2() {
   asm("mov r2, %0" : : "r"(s)); // static member reference is OK
 }
+
+struct Bar {
+#ifdef DECLSPEC
+  __declspec(naked) void func1(); // expected-error {{'naked' attribute only applies to non-member functions}}
+  __declspec(naked) static void func2(); // expected-error {{'naked' attribute only applies to non-member functions}}
+#endif
+  __attribute__((naked)) void func3(); // OK
+  __attribute__((naked)) static void func4(); // OK
+};