| // Copyright 2025 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Check that int8 bounds checking doesn't cause panics or compilation errors. |
| |
| package main |
| |
| import ( |
| "fmt" |
| "strings" |
| ) |
| |
| type Int8overflow int8 |
| |
| const ( |
| I_128 Int8overflow = -128 |
| I_127 Int8overflow = -127 |
| I_126 Int8overflow = -126 |
| I_125 Int8overflow = -125 |
| I_124 Int8overflow = -124 |
| I_123 Int8overflow = -123 |
| I_122 Int8overflow = -122 |
| I_121 Int8overflow = -121 |
| I_120 Int8overflow = -120 |
| I_119 Int8overflow = -119 |
| I_118 Int8overflow = -118 |
| I_117 Int8overflow = -117 |
| I_116 Int8overflow = -116 |
| I_115 Int8overflow = -115 |
| I_114 Int8overflow = -114 |
| I_113 Int8overflow = -113 |
| I_112 Int8overflow = -112 |
| I_111 Int8overflow = -111 |
| I_110 Int8overflow = -110 |
| I_109 Int8overflow = -109 |
| I_108 Int8overflow = -108 |
| I_107 Int8overflow = -107 |
| I_106 Int8overflow = -106 |
| I_105 Int8overflow = -105 |
| I_104 Int8overflow = -104 |
| I_103 Int8overflow = -103 |
| I_102 Int8overflow = -102 |
| I_101 Int8overflow = -101 |
| I_100 Int8overflow = -100 |
| I_99 Int8overflow = -99 |
| I_98 Int8overflow = -98 |
| I_97 Int8overflow = -97 |
| I_96 Int8overflow = -96 |
| I_95 Int8overflow = -95 |
| I_94 Int8overflow = -94 |
| I_93 Int8overflow = -93 |
| I_92 Int8overflow = -92 |
| I_91 Int8overflow = -91 |
| I_90 Int8overflow = -90 |
| I_89 Int8overflow = -89 |
| I_88 Int8overflow = -88 |
| I_87 Int8overflow = -87 |
| I_86 Int8overflow = -86 |
| I_85 Int8overflow = -85 |
| I_84 Int8overflow = -84 |
| I_83 Int8overflow = -83 |
| I_82 Int8overflow = -82 |
| I_81 Int8overflow = -81 |
| I_80 Int8overflow = -80 |
| I_79 Int8overflow = -79 |
| I_78 Int8overflow = -78 |
| I_77 Int8overflow = -77 |
| I_76 Int8overflow = -76 |
| I_75 Int8overflow = -75 |
| I_74 Int8overflow = -74 |
| I_73 Int8overflow = -73 |
| I_72 Int8overflow = -72 |
| I_71 Int8overflow = -71 |
| I_70 Int8overflow = -70 |
| I_69 Int8overflow = -69 |
| I_68 Int8overflow = -68 |
| I_67 Int8overflow = -67 |
| I_66 Int8overflow = -66 |
| I_65 Int8overflow = -65 |
| I_64 Int8overflow = -64 |
| I_63 Int8overflow = -63 |
| I_62 Int8overflow = -62 |
| I_61 Int8overflow = -61 |
| I_60 Int8overflow = -60 |
| I_59 Int8overflow = -59 |
| I_58 Int8overflow = -58 |
| I_57 Int8overflow = -57 |
| I_56 Int8overflow = -56 |
| I_55 Int8overflow = -55 |
| I_54 Int8overflow = -54 |
| I_53 Int8overflow = -53 |
| I_52 Int8overflow = -52 |
| I_51 Int8overflow = -51 |
| I_50 Int8overflow = -50 |
| I_49 Int8overflow = -49 |
| I_48 Int8overflow = -48 |
| I_47 Int8overflow = -47 |
| I_46 Int8overflow = -46 |
| I_45 Int8overflow = -45 |
| I_44 Int8overflow = -44 |
| I_43 Int8overflow = -43 |
| I_42 Int8overflow = -42 |
| I_41 Int8overflow = -41 |
| I_40 Int8overflow = -40 |
| I_39 Int8overflow = -39 |
| I_38 Int8overflow = -38 |
| I_37 Int8overflow = -37 |
| I_36 Int8overflow = -36 |
| I_35 Int8overflow = -35 |
| I_34 Int8overflow = -34 |
| I_33 Int8overflow = -33 |
| I_32 Int8overflow = -32 |
| I_31 Int8overflow = -31 |
| I_30 Int8overflow = -30 |
| I_29 Int8overflow = -29 |
| I_28 Int8overflow = -28 |
| I_27 Int8overflow = -27 |
| I_26 Int8overflow = -26 |
| I_25 Int8overflow = -25 |
| I_24 Int8overflow = -24 |
| I_23 Int8overflow = -23 |
| I_22 Int8overflow = -22 |
| I_21 Int8overflow = -21 |
| I_20 Int8overflow = -20 |
| I_19 Int8overflow = -19 |
| I_18 Int8overflow = -18 |
| I_17 Int8overflow = -17 |
| I_16 Int8overflow = -16 |
| I_15 Int8overflow = -15 |
| I_14 Int8overflow = -14 |
| I_13 Int8overflow = -13 |
| I_12 Int8overflow = -12 |
| I_11 Int8overflow = -11 |
| I_10 Int8overflow = -10 |
| I_9 Int8overflow = -9 |
| I_8 Int8overflow = -8 |
| I_7 Int8overflow = -7 |
| I_6 Int8overflow = -6 |
| I_5 Int8overflow = -5 |
| I_4 Int8overflow = -4 |
| I_3 Int8overflow = -3 |
| I_2 Int8overflow = -2 |
| I_1 Int8overflow = -1 |
| I0 Int8overflow = 0 |
| I1 Int8overflow = 1 |
| I2 Int8overflow = 2 |
| I3 Int8overflow = 3 |
| I4 Int8overflow = 4 |
| I5 Int8overflow = 5 |
| I6 Int8overflow = 6 |
| I7 Int8overflow = 7 |
| I8 Int8overflow = 8 |
| I9 Int8overflow = 9 |
| I10 Int8overflow = 10 |
| I11 Int8overflow = 11 |
| I12 Int8overflow = 12 |
| I13 Int8overflow = 13 |
| I14 Int8overflow = 14 |
| I15 Int8overflow = 15 |
| I16 Int8overflow = 16 |
| I17 Int8overflow = 17 |
| I18 Int8overflow = 18 |
| I19 Int8overflow = 19 |
| I20 Int8overflow = 20 |
| I21 Int8overflow = 21 |
| I22 Int8overflow = 22 |
| I23 Int8overflow = 23 |
| I24 Int8overflow = 24 |
| I25 Int8overflow = 25 |
| I26 Int8overflow = 26 |
| I27 Int8overflow = 27 |
| I28 Int8overflow = 28 |
| I29 Int8overflow = 29 |
| I30 Int8overflow = 30 |
| I31 Int8overflow = 31 |
| I32 Int8overflow = 32 |
| I33 Int8overflow = 33 |
| I34 Int8overflow = 34 |
| I35 Int8overflow = 35 |
| I36 Int8overflow = 36 |
| I37 Int8overflow = 37 |
| I38 Int8overflow = 38 |
| I39 Int8overflow = 39 |
| I40 Int8overflow = 40 |
| I41 Int8overflow = 41 |
| I42 Int8overflow = 42 |
| I43 Int8overflow = 43 |
| I44 Int8overflow = 44 |
| I45 Int8overflow = 45 |
| I46 Int8overflow = 46 |
| I47 Int8overflow = 47 |
| I48 Int8overflow = 48 |
| I49 Int8overflow = 49 |
| I50 Int8overflow = 50 |
| I51 Int8overflow = 51 |
| I52 Int8overflow = 52 |
| I53 Int8overflow = 53 |
| I54 Int8overflow = 54 |
| I55 Int8overflow = 55 |
| I56 Int8overflow = 56 |
| I57 Int8overflow = 57 |
| I58 Int8overflow = 58 |
| I59 Int8overflow = 59 |
| I60 Int8overflow = 60 |
| I61 Int8overflow = 61 |
| I62 Int8overflow = 62 |
| I63 Int8overflow = 63 |
| I64 Int8overflow = 64 |
| I65 Int8overflow = 65 |
| I66 Int8overflow = 66 |
| I67 Int8overflow = 67 |
| I68 Int8overflow = 68 |
| I69 Int8overflow = 69 |
| I70 Int8overflow = 70 |
| I71 Int8overflow = 71 |
| I72 Int8overflow = 72 |
| I73 Int8overflow = 73 |
| I74 Int8overflow = 74 |
| I75 Int8overflow = 75 |
| I76 Int8overflow = 76 |
| I77 Int8overflow = 77 |
| I78 Int8overflow = 78 |
| I79 Int8overflow = 79 |
| I80 Int8overflow = 80 |
| I81 Int8overflow = 81 |
| I82 Int8overflow = 82 |
| I83 Int8overflow = 83 |
| I84 Int8overflow = 84 |
| I85 Int8overflow = 85 |
| I86 Int8overflow = 86 |
| I87 Int8overflow = 87 |
| I88 Int8overflow = 88 |
| I89 Int8overflow = 89 |
| I90 Int8overflow = 90 |
| I91 Int8overflow = 91 |
| I92 Int8overflow = 92 |
| I93 Int8overflow = 93 |
| I94 Int8overflow = 94 |
| I95 Int8overflow = 95 |
| I96 Int8overflow = 96 |
| I97 Int8overflow = 97 |
| I98 Int8overflow = 98 |
| I99 Int8overflow = 99 |
| I100 Int8overflow = 100 |
| I101 Int8overflow = 101 |
| I102 Int8overflow = 102 |
| I103 Int8overflow = 103 |
| I104 Int8overflow = 104 |
| I105 Int8overflow = 105 |
| I106 Int8overflow = 106 |
| I107 Int8overflow = 107 |
| I108 Int8overflow = 108 |
| I109 Int8overflow = 109 |
| I110 Int8overflow = 110 |
| I111 Int8overflow = 111 |
| I112 Int8overflow = 112 |
| I113 Int8overflow = 113 |
| I114 Int8overflow = 114 |
| I115 Int8overflow = 115 |
| I116 Int8overflow = 116 |
| I117 Int8overflow = 117 |
| I118 Int8overflow = 118 |
| I119 Int8overflow = 119 |
| I120 Int8overflow = 120 |
| I121 Int8overflow = 121 |
| I122 Int8overflow = 122 |
| I123 Int8overflow = 123 |
| I124 Int8overflow = 124 |
| I125 Int8overflow = 125 |
| I126 Int8overflow = 126 |
| I127 Int8overflow = 127 |
| ) |
| |
| func main() { |
| testValues := []Int8overflow{ |
| I_128, |
| I_127, |
| I_1, |
| I0, |
| I1, |
| I126, |
| I127, |
| } |
| |
| for _, val := range testValues { |
| want := strings.ReplaceAll(fmt.Sprintf("I%d", int(val)), "-", "_") |
| result := fmt.Sprint(val) |
| if result != want { |
| panic(fmt.Sprintf("int8overflow.go: got %s, want %s for value %d", result, want, int8(val))) |
| } |
| } |
| } |