/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue45242.go
28 строк
586 B
Pat Gavlin
cmd/compile: fix long RMW bit operations on AMD64
26 мар 2021, 22:40
26 мар 2021, 22:40
359f449
Код
Авторство
О чём код?
// run // Copyright 2021 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. package main import "fmt" //go:noinline func repro(b []byte, bit int32) { _ = b[3] v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 | 1<<(bit&31) b[0] = byte(v) b[1] = byte(v >> 8) b[2] = byte(v >> 16) b[3] = byte(v >> 24) } func main() { var b [8]byte repro(b[:], 32) want := [8]byte{1, 0, 0, 0, 0, 0, 0, 0} if b != want { panic(fmt.Sprintf("got %v, want %v\n", b, want)) } }