diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-07-31 19:28:51 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-08-02 13:56:28 -0700 |
commit | 06d0437d4a5faca2b695918cbe1d54a61935c98b (patch) | |
tree | 81cc666b16c30384b39469f246c1ec304a4a4e72 /gcc/go/gofrontend/unsafe.cc | |
parent | 14d8a5ae472ca5743016f37da2dd4770d83dea21 (diff) | |
download | gcc-06d0437d4a5faca2b695918cbe1d54a61935c98b.zip gcc-06d0437d4a5faca2b695918cbe1d54a61935c98b.tar.gz gcc-06d0437d4a5faca2b695918cbe1d54a61935c98b.tar.bz2 |
compiler, runtime: support unsafe.Add and unsafe.Slice
For golang/go#19367
For golang/go#40481
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/338949
Diffstat (limited to 'gcc/go/gofrontend/unsafe.cc')
-rw-r--r-- | gcc/go/gofrontend/unsafe.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/unsafe.cc b/gcc/go/gofrontend/unsafe.cc index 9ed5b9d..18bd99e 100644 --- a/gcc/go/gofrontend/unsafe.cc +++ b/gcc/go/gofrontend/unsafe.cc @@ -86,6 +86,22 @@ Gogo::import_unsafe(const std::string& local_name, bool is_local_name_exported, if (add_to_globals) this->add_dot_import_object(no); + // Add. + results = new Typed_identifier_list; + results->push_back(Typed_identifier("", pointer_type, bloc)); + fntype = Type::make_function_type(NULL, NULL, results, bloc); + fntype->set_is_builtin(); + no = bindings->add_function_declaration("Add", package, fntype, bloc); + if (add_to_globals) + this->add_dot_import_object(no); + + // Slice. + fntype = Type::make_function_type(NULL, NULL, NULL, bloc); + fntype->set_is_builtin(); + no = bindings->add_function_declaration("Slice", package, fntype, bloc); + if (add_to_globals) + this->add_dot_import_object(no); + if (!this->imported_unsafe_) { go_imported_unsafe(); |