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