Merge "Allow adding class/struct members to padding space" am: 4f2576b93a am: 4384b4cdd0 am: 5c30332ddd am: d8183bf29f
Original change: https://android-review.googlesource.com/c/platform/development/+/2238294 Change-Id: Ia5cfc34eac90ad157c413cc687a2b7c170b8e033 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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
return is_extended;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
struct Struct1 {
|
||||
protected:
|
||||
int member;
|
||||
short offset_0;
|
||||
int offset_32;
|
||||
};
|
||||
|
||||
struct Struct2 {
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
struct Struct1 {
|
||||
public:
|
||||
int member;
|
||||
int added_member;
|
||||
short offset_0;
|
||||
short offset_16;
|
||||
int offset_32;
|
||||
int offset_64;
|
||||
};
|
||||
|
||||
struct Struct2 {
|
||||
|
||||
@@ -21,6 +21,15 @@
|
||||
"referenced_type" : "_ZTIi",
|
||||
"self_type" : "_ZTIi",
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 2,
|
||||
"is_integral" : true,
|
||||
"linker_set_key" : "_ZTIs",
|
||||
"name" : "short",
|
||||
"referenced_type" : "_ZTIs",
|
||||
"self_type" : "_ZTIs",
|
||||
"size" : 2
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
@@ -81,12 +90,22 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"field_name" : "added_member",
|
||||
"field_offset" : 32,
|
||||
"field_name" : "offset_64",
|
||||
"field_offset" : 64,
|
||||
"referenced_type" : "_ZTIi"
|
||||
}
|
||||
],
|
||||
@@ -94,7 +113,7 @@
|
||||
"name" : "Struct1",
|
||||
"referenced_type" : "_ZTI7Struct1",
|
||||
"self_type" : "_ZTI7Struct1",
|
||||
"size" : 8,
|
||||
"size" : 12,
|
||||
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,6 +10,15 @@
|
||||
"referenced_type" : "_ZTIi",
|
||||
"self_type" : "_ZTIi",
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 2,
|
||||
"is_integral" : true,
|
||||
"linker_set_key" : "_ZTIs",
|
||||
"name" : "short",
|
||||
"referenced_type" : "_ZTIs",
|
||||
"self_type" : "_ZTIs",
|
||||
"size" : 2
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
@@ -71,7 +80,13 @@
|
||||
[
|
||||
{
|
||||
"access" : "protected",
|
||||
"field_name" : "member",
|
||||
"field_name" : "offset_0",
|
||||
"referenced_type" : "_ZTIs"
|
||||
},
|
||||
{
|
||||
"access" : "protected",
|
||||
"field_name" : "offset_32",
|
||||
"field_offset" : 32,
|
||||
"referenced_type" : "_ZTIi"
|
||||
}
|
||||
],
|
||||
@@ -79,7 +94,7 @@
|
||||
"name" : "Struct1",
|
||||
"referenced_type" : "_ZTI7Struct1",
|
||||
"self_type" : "_ZTI7Struct1",
|
||||
"size" : 4,
|
||||
"size" : 8,
|
||||
"source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user