// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -fdeclspec -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -triple aarch64-unknown-windows-msvc -fdeclspec -emit-llvm %s -o - | FileCheck %s void __attribute__((__preserve_none__)) f() {} // CHECK-DAG: @"?f@@YVXXZ" void (__attribute__((__preserve_none__)) *p)(); // CHECK-DAG: @"?p@@3P6VXXZEA namespace { void __attribute__((__preserve_none__)) __attribute__((__used__)) f() { } } // CHECK-DAG: @"?f@?A0x{{[^@]*}}@@YVXXZ" namespace n { void __attribute__((__preserve_none__)) f() {} } // CHECK-DAG: @"?f@n@@YVXXZ" struct __declspec(dllexport) S { S(const S &) = delete; S & operator=(const S &) = delete; void __attribute__((__preserve_none__)) m() { } }; // CHECK-DAG: @"?m@S@@QEAVXXZ" void f(void (__attribute__((__preserve_none__))())) {} // CHECK-DAG: @"?f@@YAXP6VXXZ@Z"