1 // REQUIRES: aarch64-registered-target || arm-registered-target
2 ///
3 /// Check that using /hotpatch doesn't generate an error.
4 /// Binaries are always hotpatchable on ARM/ARM64.
5 ///
6 // RUN: %clang_cl --target=arm-pc-windows-msvc /c /hotpatch /Z7 -- %s 2>&1
7 // RUN: %clang_cl --target=aarch64-pc-windows-msvc /c /hotpatch /Z7 -- %s 2>&1
8 ///
9 /// Ensure that we set the hotpatchable flag in the debug information.
10 ///
11 // RUN: %clang_cl --target=arm-pc-windows-msvc /c /Z7 -o %t.obj -- %s
12 // RUN: llvm-pdbutil dump -symbols %t.obj | FileCheck %s --check-prefix=HOTPATCH
13 // RUN: %clang_cl --target=aarch64-pc-windows-msvc /c /Z7 -o %t.obj -- %s
14 // RUN: llvm-pdbutil dump -symbols %t.obj | FileCheck %s --check-prefix=HOTPATCH
15 // HOTPATCH: S_COMPILE3 [size = [[#]]]
16 // HOTPATCH: flags = hot patchable
17 ///
18 /// Unfortunately we need /Z7, Clang does not systematically generate S_COMPILE3.
19 ///
20 // RUN: %clang_cl --target=aarch64-pc-windows-msvc /c -o %t.obj -- %s
21 // RUN: llvm-pdbutil dump -symbols %t.obj | FileCheck %s --check-prefix=NO-HOTPATCH
22 // NO-HOTPATCH-NOT: flags = hot patchable
23 
24 int main() {
25   return 0;
26 }
27