1 // RUN: %clang_cc1 -fsanitize=implicit-unsigned-integer-truncation -fsanitize-recover=implicit-unsigned-integer-truncation -emit-llvm %s -o - -triple x86_64-linux-gnu | FileCheck %s -implicit-check-not="call void @__ubsan_handle_implicit_conversion" --check-prefixes=CHECK
2 
3 // CHECK-LABEL: @t0(
t0(unsigned short x)4 unsigned short t0(unsigned short x) {
5 #line 100
6   x++;
7   return x;
8 }
9 // CHECK-LABEL: @t1(
t1(unsigned short x)10 unsigned short t1(unsigned short x) {
11 #line 200
12   x--;
13   return x;
14 }
15 // CHECK-LABEL: @t2(
t2(unsigned short x)16 unsigned short t2(unsigned short x) {
17 #line 300
18   ++x;
19   return x;
20 }
21 // CHECK-LABEL: @t3(
t3(unsigned short x)22 unsigned short t3(unsigned short x) {
23 #line 400
24   --x;
25   return x;
26 }
27 
28 // CHECK-LABEL: @t4(
t4(signed short x)29 signed short t4(signed short x) {
30 #line 500
31   x++;
32   return x;
33 }
34 // CHECK-LABEL: @t5(
t5(signed short x)35 signed short t5(signed short x) {
36 #line 600
37   x--;
38   return x;
39 }
40 // CHECK-LABEL: @t6(
t6(signed short x)41 signed short t6(signed short x) {
42 #line 700
43   ++x;
44   return x;
45 }
46 // CHECK-LABEL: @t7(
t7(signed short x)47 signed short t7(signed short x) {
48 #line 800
49   --x;
50   return x;
51 }
52 
53 // CHECK-LABEL: @t8(
t8(unsigned char x)54 unsigned char t8(unsigned char x) {
55 #line 900
56   x++;
57   return x;
58 }
59 // CHECK-LABEL: @t9(
t9(unsigned char x)60 unsigned char t9(unsigned char x) {
61 #line 1000
62   x--;
63   return x;
64 }
65 // CHECK-LABEL: @t10(
t10(unsigned char x)66 unsigned char t10(unsigned char x) {
67 #line 1100
68   ++x;
69   return x;
70 }
71 // CHECK-LABEL: @t11(
t11(unsigned char x)72 unsigned char t11(unsigned char x) {
73 #line 1200
74   --x;
75   return x;
76 }
77 
78 // CHECK-LABEL: @t12(
t12(signed char x)79 signed char t12(signed char x) {
80 #line 1300
81   x++;
82   return x;
83 }
84 // CHECK-LABEL: @t13(
t13(signed char x)85 signed char t13(signed char x) {
86 #line 1400
87   x--;
88   return x;
89 }
90 // CHECK-LABEL: @t14(
t14(signed char x)91 signed char t14(signed char x) {
92 #line 1500
93   ++x;
94   return x;
95 }
96 // CHECK-LABEL: @t15(
t15(signed char x)97 signed char t15(signed char x) {
98 #line 1600
99   --x;
100   return x;
101 }
102