1*b5af5787SReid Kleckner // RUN: %clang_cl_asan -Od %s -Fe%t
2*b5af5787SReid Kleckner // RUN: %env_asan_opts=handle_sigfpe=1 not %run %t 2>&1 | FileCheck %s
3*b5af5787SReid Kleckner 
4*b5af5787SReid Kleckner // Test the error output from dividing by zero.
5*b5af5787SReid Kleckner 
6*b5af5787SReid Kleckner #include <stdio.h>
7*b5af5787SReid Kleckner 
main()8*b5af5787SReid Kleckner int main() {
9*b5af5787SReid Kleckner   puts("before ud2a");
10*b5af5787SReid Kleckner   fflush(stdout);
11*b5af5787SReid Kleckner   volatile int numerator = 1;
12*b5af5787SReid Kleckner   volatile int divisor = 0;
13*b5af5787SReid Kleckner   return numerator / divisor;
14*b5af5787SReid Kleckner }
15*b5af5787SReid Kleckner // CHECK: before ud2a
16*b5af5787SReid Kleckner // CHECK: ERROR: AddressSanitizer: int-divide-by-zero on unknown address [[ADDR:0x[^ ]*]]
17*b5af5787SReid Kleckner // CHECK-SAME: (pc [[ADDR]] {{.*}})
18*b5af5787SReid Kleckner // CHECK-NEXT: #0 {{.*}} in main {{.*}}integer_divide_by_zero.cpp:{{.*}}
19