diff --git a/vndk/tools/header-checker/src/repr/ir_diff_representation.cpp b/vndk/tools/header-checker/src/repr/ir_diff_representation.cpp index 32f6f3066..a55829b87 100644 --- a/vndk/tools/header-checker/src/repr/ir_diff_representation.cpp +++ b/vndk/tools/header-checker/src/repr/ir_diff_representation.cpp @@ -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; diff --git a/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h b/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h index 94f801a95..c20c82334 100644 --- a/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h +++ b/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h @@ -1,6 +1,7 @@ struct Struct1 { protected: - int member; + short offset_0; + int offset_32; }; struct Struct2 { diff --git a/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h b/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h index 683bd861e..345687b86 100644 --- a/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h +++ b/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h @@ -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 { diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm64/liballowed_struct_extensions.so.lsdump b/vndk/tools/header-checker/tests/reference_dumps/arm64/liballowed_struct_extensions.so.lsdump index 4e33d2e20..75ac88791 100644 --- a/vndk/tools/header-checker/tests/reference_dumps/arm64/liballowed_struct_extensions.so.lsdump +++ b/vndk/tools/header-checker/tests/reference_dumps/arm64/liballowed_struct_extensions.so.lsdump @@ -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" }, { diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm64/libstruct_extensions.so.lsdump b/vndk/tools/header-checker/tests/reference_dumps/arm64/libstruct_extensions.so.lsdump index 0d0cc70b9..35e0b016c 100644 --- a/vndk/tools/header-checker/tests/reference_dumps/arm64/libstruct_extensions.so.lsdump +++ b/vndk/tools/header-checker/tests/reference_dumps/arm64/libstruct_extensions.so.lsdump @@ -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" }, {