Merge "Allow adding class/struct members to padding space" am: 4f2576b93a am: 4384b4cdd0 am: 5c30332ddd
Original change: https://android-review.googlesource.com/c/platform/development/+/2238294 Change-Id: If0702c9163353438f11ec363e8e048826bc14b19 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -53,15 +53,6 @@ bool RecordTypeDiffIR::IsExtended() const {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (fields_added_.size() != 0) {
|
if (fields_added_.size() != 0) {
|
||||||
if (type_diff_ != nullptr) {
|
|
||||||
const uint64_t old_size = type_diff_->GetSizes().first;
|
|
||||||
for (const RecordFieldIR *field_added : fields_added_) {
|
|
||||||
// The offset is in bits; the size is in bytes.
|
|
||||||
if (field_added->GetOffset() < old_size * 8) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
is_extended = true;
|
is_extended = true;
|
||||||
}
|
}
|
||||||
return is_extended;
|
return is_extended;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
struct Struct1 {
|
struct Struct1 {
|
||||||
protected:
|
protected:
|
||||||
int member;
|
short offset_0;
|
||||||
|
int offset_32;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Struct2 {
|
struct Struct2 {
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
struct Struct1 {
|
struct Struct1 {
|
||||||
public:
|
public:
|
||||||
int member;
|
short offset_0;
|
||||||
int added_member;
|
short offset_16;
|
||||||
|
int offset_32;
|
||||||
|
int offset_64;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Struct2 {
|
struct Struct2 {
|
||||||
|
|||||||
@@ -21,6 +21,15 @@
|
|||||||
"referenced_type" : "_ZTIi",
|
"referenced_type" : "_ZTIi",
|
||||||
"self_type" : "_ZTIi",
|
"self_type" : "_ZTIi",
|
||||||
"size" : 4
|
"size" : 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alignment" : 2,
|
||||||
|
"is_integral" : true,
|
||||||
|
"linker_set_key" : "_ZTIs",
|
||||||
|
"name" : "short",
|
||||||
|
"referenced_type" : "_ZTIs",
|
||||||
|
"self_type" : "_ZTIs",
|
||||||
|
"size" : 2
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"elf_functions" :
|
"elf_functions" :
|
||||||
@@ -81,12 +90,22 @@
|
|||||||
"fields" :
|
"fields" :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"field_name" : "member",
|
"field_name" : "offset_0",
|
||||||
|
"referenced_type" : "_ZTIs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field_name" : "offset_16",
|
||||||
|
"field_offset" : 16,
|
||||||
|
"referenced_type" : "_ZTIs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field_name" : "offset_32",
|
||||||
|
"field_offset" : 32,
|
||||||
"referenced_type" : "_ZTIi"
|
"referenced_type" : "_ZTIi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"field_name" : "added_member",
|
"field_name" : "offset_64",
|
||||||
"field_offset" : 32,
|
"field_offset" : 64,
|
||||||
"referenced_type" : "_ZTIi"
|
"referenced_type" : "_ZTIi"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -94,7 +113,7 @@
|
|||||||
"name" : "Struct1",
|
"name" : "Struct1",
|
||||||
"referenced_type" : "_ZTI7Struct1",
|
"referenced_type" : "_ZTI7Struct1",
|
||||||
"self_type" : "_ZTI7Struct1",
|
"self_type" : "_ZTI7Struct1",
|
||||||
"size" : 8,
|
"size" : 12,
|
||||||
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
|
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,6 +10,15 @@
|
|||||||
"referenced_type" : "_ZTIi",
|
"referenced_type" : "_ZTIi",
|
||||||
"self_type" : "_ZTIi",
|
"self_type" : "_ZTIi",
|
||||||
"size" : 4
|
"size" : 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"alignment" : 2,
|
||||||
|
"is_integral" : true,
|
||||||
|
"linker_set_key" : "_ZTIs",
|
||||||
|
"name" : "short",
|
||||||
|
"referenced_type" : "_ZTIs",
|
||||||
|
"self_type" : "_ZTIs",
|
||||||
|
"size" : 2
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"elf_functions" :
|
"elf_functions" :
|
||||||
@@ -71,7 +80,13 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"access" : "protected",
|
"access" : "protected",
|
||||||
"field_name" : "member",
|
"field_name" : "offset_0",
|
||||||
|
"referenced_type" : "_ZTIs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"access" : "protected",
|
||||||
|
"field_name" : "offset_32",
|
||||||
|
"field_offset" : 32,
|
||||||
"referenced_type" : "_ZTIi"
|
"referenced_type" : "_ZTIi"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -79,7 +94,7 @@
|
|||||||
"name" : "Struct1",
|
"name" : "Struct1",
|
||||||
"referenced_type" : "_ZTI7Struct1",
|
"referenced_type" : "_ZTI7Struct1",
|
||||||
"self_type" : "_ZTI7Struct1",
|
"self_type" : "_ZTI7Struct1",
|
||||||
"size" : 4,
|
"size" : 8,
|
||||||
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
|
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user