diff options
author | Than McIntosh <thanm@google.com> | 2022-10-06 15:58:59 -0400 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2022-10-06 19:15:18 -0700 |
commit | 8a9e92b249c9c5a5371588b1e939a90a677b4fd3 (patch) | |
tree | d9e43103bc474b751177b57e4a422b19a27c7bb5 /gcc/go/gofrontend | |
parent | 629d04d35d819bdc26c30d215bc4ea66a74af15b (diff) | |
download | gcc-8a9e92b249c9c5a5371588b1e939a90a677b4fd3.zip gcc-8a9e92b249c9c5a5371588b1e939a90a677b4fd3.tar.gz gcc-8a9e92b249c9c5a5371588b1e939a90a677b4fd3.tar.bz2 |
compiler: better arg type checking for selected builtins
Tighten up the argument type checking for Builtin_call_expression to
catch erroneous cases such as
panic(panic("bad")))
where an argument void type is being passed to panic/alignof/sizeof.
Fixes golang/go#56071.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/439815
Diffstat (limited to 'gcc/go/gofrontend')
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 4793c82..10ed3fe 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -8f1a91aeff400d572857895b7f5e863ec5a4d93e +50707b4b51266166ce9bcf9de187e35760ec50f9 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 2492d9f..247ae1b 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -10316,7 +10316,12 @@ Builtin_call_expression::do_check_types(Gogo*) case BUILTIN_PANIC: case BUILTIN_SIZEOF: case BUILTIN_ALIGNOF: - this->check_one_arg(); + if (this->check_one_arg()) + { + Expression* arg = this->one_arg(); + if (arg->type()->is_void_type()) + this->report_error(_("argument to builtin has void type")); + } break; case BUILTIN_RECOVER: |