mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 21:01:22 +08:00
compiler: don't set ptrmask bit for pointer to notinheap type
Test case is https://go.dev/cl/385454. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/385474
This commit is contained in:
parent
57da349397
commit
033ec967ec
@ -1,4 +1,4 @@
|
||||
47380f733ca932384e59492d2f04374edd8ec95e
|
||||
7f8fee099d6de4a5a857765e0ddfae356ead554c
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
@ -2816,6 +2816,9 @@ class Ptrmask
|
||||
void
|
||||
Ptrmask::set_from(Gogo* gogo, Type* type, int64_t ptrsize, int64_t offset)
|
||||
{
|
||||
if (!type->has_pointer())
|
||||
return;
|
||||
|
||||
switch (type->base()->classification())
|
||||
{
|
||||
default:
|
||||
@ -2858,9 +2861,6 @@ Ptrmask::set_from(Gogo* gogo, Type* type, int64_t ptrsize, int64_t offset)
|
||||
|
||||
case Type::TYPE_STRUCT:
|
||||
{
|
||||
if (!type->has_pointer())
|
||||
return;
|
||||
|
||||
const Struct_field_list* fields = type->struct_type()->fields();
|
||||
int64_t soffset = 0;
|
||||
for (Struct_field_list::const_iterator pf = fields->begin();
|
||||
@ -2898,9 +2898,6 @@ Ptrmask::set_from(Gogo* gogo, Type* type, int64_t ptrsize, int64_t offset)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!type->has_pointer())
|
||||
return;
|
||||
|
||||
int64_t len;
|
||||
if (!type->array_type()->int_length(&len))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user