Replace compiler hack for sync package with //go:linkname

Этот коммит содержится в:
Ayke van Laethem 2018-08-30 22:38:21 +02:00
родитель 74bd378c29
коммит 674b506bb2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED
2 изменённых файлов: 13 добавлений и 5 удалений

Просмотреть файл

@ -1325,11 +1325,6 @@ func (c *Compiler) parseBuiltin(frame *Frame, args []ssa.Value, callName string)
} }
func (c *Compiler) parseFunctionCall(frame *Frame, args []ssa.Value, llvmFn llvm.Value, blocking bool, parentHandle llvm.Value) (llvm.Value, error) { func (c *Compiler) parseFunctionCall(frame *Frame, args []ssa.Value, llvmFn llvm.Value, blocking bool, parentHandle llvm.Value) (llvm.Value, error) {
if llvmFn.Name() == "sync.runtime_registerPoolCleanup" || llvmFn.Name() == "sync.runtime_notifyListCheck" {
// Ignore these functions calls for now, as a hack.
// TODO: implement //go:linkname.
return llvm.Value{}, nil
}
var params []llvm.Value var params []llvm.Value
if blocking { if blocking {
if parentHandle.IsNil() { if parentHandle.IsNil() {

13
src/runtime/sync.go Обычный файл
Просмотреть файл

@ -0,0 +1,13 @@
package runtime
// This file contains support code for the sync package.
//go:linkname registerPoolCleanup sync.runtime_registerPoolCleanup
func registerPoolCleanup(cleanup func()) {
// Ignore.
}
//go:linkname notifyListCheck sync.runtime_notifyListCheck
func notifyListCheck(size uintptr) {
// Ignore.
}