Source file test/codegen/mapaccess.go
1 // asmcheck 2 3 // Copyright 2018 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package codegen 8 9 // These tests check that mapaccess calls are not used. 10 // Issues #23661 and #24364. 11 12 func mapCompoundAssignmentInt8() { 13 m := make(map[int8]int8, 0) 14 var k int8 = 0 15 16 // 386:-".*mapaccess" 17 // amd64:-".*mapaccess" 18 // arm:-".*mapaccess" 19 // arm64:-".*mapaccess" 20 m[k] += 67 21 22 // 386:-".*mapaccess" 23 // amd64:-".*mapaccess" 24 // arm:-".*mapaccess" 25 // arm64:-".*mapaccess" 26 m[k] -= 123 27 28 // 386:-".*mapaccess" 29 // amd64:-".*mapaccess" 30 // arm:-".*mapaccess" 31 // arm64:-".*mapaccess" 32 m[k] *= 45 33 34 // 386:-".*mapaccess" 35 // amd64:-".*mapaccess" 36 // arm:-".*mapaccess" 37 // arm64:-".*mapaccess" 38 m[k] |= 78 39 40 // 386:-".*mapaccess" 41 // amd64:-".*mapaccess" 42 // arm:-".*mapaccess" 43 // arm64:-".*mapaccess" 44 m[k] ^= 89 45 46 // 386:-".*mapaccess" 47 // amd64:-".*mapaccess" 48 // arm:-".*mapaccess" 49 // arm64:-".*mapaccess" 50 m[k] <<= 9 51 52 // 386:-".*mapaccess" 53 // amd64:-".*mapaccess" 54 // arm:-".*mapaccess" 55 // arm64:-".*mapaccess" 56 m[k] >>= 10 57 58 // 386:-".*mapaccess" 59 // amd64:-".*mapaccess" 60 // arm:-".*mapaccess" 61 // arm64:-".*mapaccess" 62 m[k]++ 63 64 // 386:-".*mapaccess" 65 // amd64:-".*mapaccess" 66 // arm:-".*mapaccess" 67 // arm64:-".*mapaccess" 68 m[k]-- 69 } 70 71 func mapCompoundAssignmentInt32() { 72 m := make(map[int32]int32, 0) 73 var k int32 = 0 74 75 // 386:-".*mapaccess" 76 // amd64:-".*mapaccess" 77 // arm:-".*mapaccess" 78 // arm64:-".*mapaccess" 79 m[k] += 67890 80 81 // 386:-".*mapaccess" 82 // amd64:-".*mapaccess" 83 // arm:-".*mapaccess" 84 // arm64:-".*mapaccess" 85 m[k] -= 123 86 87 // 386:-".*mapaccess" 88 // amd64:-".*mapaccess" 89 // arm:-".*mapaccess" 90 // arm64:-".*mapaccess" 91 m[k] *= 456 92 93 // 386:-".*mapaccess" 94 // amd64:-".*mapaccess" 95 // arm:-".*mapaccess" 96 // arm64:-".*mapaccess" 97 m[k] |= 78 98 99 // 386:-".*mapaccess" 100 // amd64:-".*mapaccess" 101 // arm:-".*mapaccess" 102 // arm64:-".*mapaccess" 103 m[k] ^= 89 104 105 // 386:-".*mapaccess" 106 // amd64:-".*mapaccess" 107 // arm:-".*mapaccess" 108 // arm64:-".*mapaccess" 109 m[k] <<= 9 110 111 // 386:-".*mapaccess" 112 // amd64:-".*mapaccess" 113 // arm:-".*mapaccess" 114 // arm64:-".*mapaccess" 115 m[k] >>= 10 116 117 // 386:-".*mapaccess" 118 // amd64:-".*mapaccess" 119 // arm:-".*mapaccess" 120 // arm64:-".*mapaccess" 121 m[k]++ 122 123 // 386:-".*mapaccess" 124 // amd64:-".*mapaccess" 125 // arm:-".*mapaccess" 126 // arm64:-".*mapaccess" 127 m[k]-- 128 } 129 130 func mapCompoundAssignmentInt64() { 131 m := make(map[int64]int64, 0) 132 var k int64 = 0 133 134 // 386:-".*mapaccess" 135 // amd64:-".*mapaccess" 136 // arm:-".*mapaccess" 137 // arm64:-".*mapaccess" 138 m[k] += 67890 139 140 // 386:-".*mapaccess" 141 // amd64:-".*mapaccess" 142 // arm:-".*mapaccess" 143 // arm64:-".*mapaccess" 144 m[k] -= 123 145 146 // 386:-".*mapaccess" 147 // amd64:-".*mapaccess" 148 // arm:-".*mapaccess" 149 // arm64:-".*mapaccess" 150 m[k] *= 456 151 152 // 386:-".*mapaccess" 153 // amd64:-".*mapaccess" 154 // arm:-".*mapaccess" 155 // arm64:-".*mapaccess" 156 m[k] |= 78 157 158 // 386:-".*mapaccess" 159 // amd64:-".*mapaccess" 160 // arm:-".*mapaccess" 161 // arm64:-".*mapaccess" 162 m[k] ^= 89 163 164 // 386:-".*mapaccess" 165 // amd64:-".*mapaccess" 166 // arm:-".*mapaccess" 167 // arm64:-".*mapaccess" 168 m[k] <<= 9 169 170 // 386:-".*mapaccess" 171 // amd64:-".*mapaccess" 172 // arm:-".*mapaccess" 173 // arm64:-".*mapaccess" 174 m[k] >>= 10 175 176 // 386:-".*mapaccess" 177 // amd64:-".*mapaccess" 178 // arm:-".*mapaccess" 179 // arm64:-".*mapaccess" 180 m[k]++ 181 182 // 386:-".*mapaccess" 183 // amd64:-".*mapaccess" 184 // arm:-".*mapaccess" 185 // arm64:-".*mapaccess" 186 m[k]-- 187 } 188 189 func mapCompoundAssignmentComplex128() { 190 m := make(map[complex128]complex128, 0) 191 var k complex128 = 0 192 193 // 386:-".*mapaccess" 194 // amd64:-".*mapaccess" 195 // arm:-".*mapaccess" 196 // arm64:-".*mapaccess" 197 m[k] += 67890 198 199 // 386:-".*mapaccess" 200 // amd64:-".*mapaccess" 201 // arm:-".*mapaccess" 202 // arm64:-".*mapaccess" 203 m[k] -= 123 204 205 // 386:-".*mapaccess" 206 // amd64:-".*mapaccess" 207 // arm:-".*mapaccess" 208 // arm64:-".*mapaccess" 209 m[k] *= 456 210 211 // 386:-".*mapaccess" 212 // amd64:-".*mapaccess" 213 // arm:-".*mapaccess" 214 // arm64:-".*mapaccess" 215 m[k]++ 216 217 // 386:-".*mapaccess" 218 // amd64:-".*mapaccess" 219 // arm:-".*mapaccess" 220 // arm64:-".*mapaccess" 221 m[k]-- 222 } 223 224 func mapCompoundAssignmentString() { 225 m := make(map[string]string, 0) 226 var k string = "key" 227 228 // 386:-".*mapaccess" 229 // amd64:-".*mapaccess" 230 // arm:-".*mapaccess" 231 // arm64:-".*mapaccess" 232 m[k] += "value" 233 } 234 235 var sinkAppend bool 236 237 func mapAppendAssignmentInt8() { 238 m := make(map[int8][]int8, 0) 239 var k int8 = 0 240 241 // 386:-".*mapaccess" 242 // amd64:-".*mapaccess" 243 // arm:-".*mapaccess" 244 // arm64:-".*mapaccess" 245 m[k] = append(m[k], 1) 246 247 // 386:-".*mapaccess" 248 // amd64:-".*mapaccess" 249 // arm:-".*mapaccess" 250 // arm64:-".*mapaccess" 251 m[k] = append(m[k], 1, 2, 3) 252 253 a := []int8{7, 8, 9, 0} 254 255 // 386:-".*mapaccess" 256 // amd64:-".*mapaccess" 257 // arm:-".*mapaccess" 258 // arm64:-".*mapaccess" 259 m[k] = append(m[k], a...) 260 261 // Exceptions 262 263 // 386:".*mapaccess" 264 // amd64:".*mapaccess" 265 // arm:".*mapaccess" 266 // arm64:".*mapaccess" 267 m[k] = append(a, m[k]...) 268 269 // 386:".*mapaccess" 270 // amd64:".*mapaccess" 271 // arm:".*mapaccess" 272 // arm64:".*mapaccess" 273 sinkAppend, m[k] = !sinkAppend, append(m[k], 99) 274 275 // 386:".*mapaccess" 276 // amd64:".*mapaccess" 277 // arm:".*mapaccess" 278 // arm64:".*mapaccess" 279 m[k] = append(m[k+1], 100) 280 } 281 282 func mapAppendAssignmentInt32() { 283 m := make(map[int32][]int32, 0) 284 var k int32 = 0 285 286 // 386:-".*mapaccess" 287 // amd64:-".*mapaccess" 288 // arm:-".*mapaccess" 289 // arm64:-".*mapaccess" 290 m[k] = append(m[k], 1) 291 292 // 386:-".*mapaccess" 293 // amd64:-".*mapaccess" 294 // arm:-".*mapaccess" 295 // arm64:-".*mapaccess" 296 m[k] = append(m[k], 1, 2, 3) 297 298 a := []int32{7, 8, 9, 0} 299 300 // 386:-".*mapaccess" 301 // amd64:-".*mapaccess" 302 // arm:-".*mapaccess" 303 // arm64:-".*mapaccess" 304 m[k] = append(m[k], a...) 305 306 // 386:-".*mapaccess" 307 // amd64:-".*mapaccess" 308 // arm:-".*mapaccess" 309 // arm64:-".*mapaccess" 310 m[k+1] = append(m[k+1], a...) 311 312 // 386:-".*mapaccess" 313 // amd64:-".*mapaccess" 314 // arm:-".*mapaccess" 315 // arm64:-".*mapaccess" 316 m[-k] = append(m[-k], a...) 317 318 // Exceptions 319 320 // 386:".*mapaccess" 321 // amd64:".*mapaccess" 322 // arm:".*mapaccess" 323 // arm64:".*mapaccess" 324 m[k] = append(a, m[k]...) 325 326 // 386:".*mapaccess" 327 // amd64:".*mapaccess" 328 // arm:".*mapaccess" 329 // arm64:".*mapaccess" 330 sinkAppend, m[k] = !sinkAppend, append(m[k], 99) 331 332 // 386:".*mapaccess" 333 // amd64:".*mapaccess" 334 // arm:".*mapaccess" 335 // arm64:".*mapaccess" 336 m[k] = append(m[k+1], 100) 337 } 338 339 func mapAppendAssignmentInt64() { 340 m := make(map[int64][]int64, 0) 341 var k int64 = 0 342 343 // 386:-".*mapaccess" 344 // amd64:-".*mapaccess" 345 // arm:-".*mapaccess" 346 // arm64:-".*mapaccess" 347 m[k] = append(m[k], 1) 348 349 // 386:-".*mapaccess" 350 // amd64:-".*mapaccess" 351 // arm:-".*mapaccess" 352 // arm64:-".*mapaccess" 353 m[k] = append(m[k], 1, 2, 3) 354 355 a := []int64{7, 8, 9, 0} 356 357 // 386:-".*mapaccess" 358 // amd64:-".*mapaccess" 359 // arm:-".*mapaccess" 360 // arm64:-".*mapaccess" 361 m[k] = append(m[k], a...) 362 363 // 386:-".*mapaccess" 364 // amd64:-".*mapaccess" 365 // arm:-".*mapaccess" 366 // arm64:-".*mapaccess" 367 m[k+1] = append(m[k+1], a...) 368 369 // 386:-".*mapaccess" 370 // amd64:-".*mapaccess" 371 // arm:-".*mapaccess" 372 // arm64:-".*mapaccess" 373 m[-k] = append(m[-k], a...) 374 375 // Exceptions 376 377 // 386:".*mapaccess" 378 // amd64:".*mapaccess" 379 // arm:".*mapaccess" 380 // arm64:".*mapaccess" 381 m[k] = append(a, m[k]...) 382 383 // 386:".*mapaccess" 384 // amd64:".*mapaccess" 385 // arm:".*mapaccess" 386 // arm64:".*mapaccess" 387 sinkAppend, m[k] = !sinkAppend, append(m[k], 99) 388 389 // 386:".*mapaccess" 390 // amd64:".*mapaccess" 391 // arm:".*mapaccess" 392 // arm64:".*mapaccess" 393 m[k] = append(m[k+1], 100) 394 } 395 396 func mapAppendAssignmentComplex128() { 397 m := make(map[complex128][]complex128, 0) 398 var k complex128 = 0 399 400 // 386:-".*mapaccess" 401 // amd64:-".*mapaccess" 402 // arm:-".*mapaccess" 403 // arm64:-".*mapaccess" 404 m[k] = append(m[k], 1) 405 406 // 386:-".*mapaccess" 407 // amd64:-".*mapaccess" 408 // arm:-".*mapaccess" 409 // arm64:-".*mapaccess" 410 m[k] = append(m[k], 1, 2, 3) 411 412 a := []complex128{7, 8, 9, 0} 413 414 // 386:-".*mapaccess" 415 // amd64:-".*mapaccess" 416 // arm:-".*mapaccess" 417 // arm64:-".*mapaccess" 418 m[k] = append(m[k], a...) 419 420 // Exceptions 421 422 // 386:".*mapaccess" 423 // amd64:".*mapaccess" 424 // arm:".*mapaccess" 425 // arm64:".*mapaccess" 426 m[k] = append(a, m[k]...) 427 428 // 386:".*mapaccess" 429 // amd64:".*mapaccess" 430 // arm:".*mapaccess" 431 // arm64:".*mapaccess" 432 sinkAppend, m[k] = !sinkAppend, append(m[k], 99) 433 434 // 386:".*mapaccess" 435 // amd64:".*mapaccess" 436 // arm:".*mapaccess" 437 // arm64:".*mapaccess" 438 m[k] = append(m[k+1], 100) 439 } 440 441 func mapAppendAssignmentString() { 442 m := make(map[string][]string, 0) 443 var k string = "key" 444 445 // 386:-".*mapaccess" 446 // amd64:-".*mapaccess" 447 // arm:-".*mapaccess" 448 // arm64:-".*mapaccess" 449 m[k] = append(m[k], "1") 450 451 // 386:-".*mapaccess" 452 // amd64:-".*mapaccess" 453 // arm:-".*mapaccess" 454 // arm64:-".*mapaccess" 455 m[k] = append(m[k], "1", "2", "3") 456 457 a := []string{"7", "8", "9", "0"} 458 459 // 386:-".*mapaccess" 460 // amd64:-".*mapaccess" 461 // arm:-".*mapaccess" 462 // arm64:-".*mapaccess" 463 m[k] = append(m[k], a...) 464 465 // Exceptions 466 467 // 386:".*mapaccess" 468 // amd64:".*mapaccess" 469 // arm:".*mapaccess" 470 // arm64:".*mapaccess" 471 m[k] = append(a, m[k]...) 472 473 // 386:".*mapaccess" 474 // amd64:".*mapaccess" 475 // arm:".*mapaccess" 476 // arm64:".*mapaccess" 477 sinkAppend, m[k] = !sinkAppend, append(m[k], "99") 478 479 // 386:".*mapaccess" 480 // amd64:".*mapaccess" 481 // arm:".*mapaccess" 482 // arm64:".*mapaccess" 483 m[k] = append(m[k+"1"], "100") 484 } 485