1*74989affSNico Weber // Check that sanitizer prints the faulting instruction bytes on
2*74989affSNico Weber // dump_instruction_bytes=1
3*74989affSNico Weber 
4*74989affSNico Weber // RUN: %clangxx  %s -o %t
5*74989affSNico Weber // RUN: %env_tool_opts=dump_instruction_bytes=1 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-DUMP
6*74989affSNico Weber // RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NODUMP
7*74989affSNico Weber 
8*74989affSNico Weber // REQUIRES: x86-target-arch
9*74989affSNico Weber 
main()10*74989affSNico Weber int main() {
11*74989affSNico Weber #if defined(__x86_64__)
12*74989affSNico Weber   asm("movq $0, %rax");
13*74989affSNico Weber   asm("movl $0xcafebabe, 0x0(%rax)");
14*74989affSNico Weber #elif defined(i386)
15*74989affSNico Weber   asm("movl $0, %eax");
16*74989affSNico Weber   asm("movl $0xcafebabe, 0x0(%eax)");
17*74989affSNico Weber #endif
18*74989affSNico Weber   // CHECK-DUMP: First 16 instruction bytes at pc: c7 00 be ba fe ca
19*74989affSNico Weber   // CHECK-NODUMP-NOT: First 16 instruction bytes
20*74989affSNico Weber   return 0;
21*74989affSNico Weber }
22