Don't ignore options when diffing translation units (.bi files).
Commit Message
* tools/abidiff.cc: Use populated ctxt for translation unit
diff.
Signed-off-by: Giuliano Procida <gprocida@google.com>
---
tests/data/test-abidiff-exit/test-loc-v0.bi | 13 +++++++++++++
tests/data/test-abidiff-exit/test-loc-v1.bi | 13 +++++++++++++
.../test-loc-with-locs-report.txt | 12 ++++++++++++
.../test-loc-without-locs-report.txt | 12 ++++++++++++
tests/test-abidiff-exit.cc | 18 ++++++++++++++++++
tools/abidiff.cc | 3 +--
6 files changed, 69 insertions(+), 2 deletions(-)
create mode 100644 tests/data/test-abidiff-exit/test-loc-v0.bi
create mode 100644 tests/data/test-abidiff-exit/test-loc-v1.bi
create mode 100644 tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
create mode 100644 tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
new file mode 100644
@@ -0,0 +1,13 @@
+<abi-corpus path='test-loc-v0.o' architecture='elf-amd-x86_64'>
+ <elf-function-symbols>
+ <elf-symbol name='x' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ </elf-function-symbols>
+ <abi-instr version='1.0' address-size='64' path='test-loc-v0.c' comp-dir-path='/tmp' language='LANG_C99'>
+ <type-decl name='unsigned char' size-in-bits='8' id='type-id-1'/>
+ <type-decl name='void' id='type-id-2'/>
+ <function-decl name='x' mangled-name='x' filepath='test-loc-v0.c' line='1' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='x'>
+ <parameter type-id='type-id-1' name='y' filepath='test-loc-v0.c' line='1' column='1'/>
+ <return type-id='type-id-2'/>
+ </function-decl>
+ </abi-instr>
+</abi-corpus>
new file mode 100644
@@ -0,0 +1,13 @@
+<abi-corpus path='test-loc-v1.o' architecture='elf-amd-x86_64'>
+ <elf-function-symbols>
+ <elf-symbol name='x' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ </elf-function-symbols>
+ <abi-instr version='1.0' address-size='64' path='test-loc-v1.c' comp-dir-path='/tmp' language='LANG_C99'>
+ <type-decl name='signed char' size-in-bits='8' id='type-id-1'/>
+ <type-decl name='void' id='type-id-2'/>
+ <function-decl name='x' mangled-name='x' filepath='test-loc-v1.c' line='1' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='x'>
+ <parameter type-id='type-id-1' name='y' filepath='test-loc-v1.c' line='1' column='1'/>
+ <return type-id='type-id-2'/>
+ </function-decl>
+ </abi-instr>
+</abi-corpus>
new file mode 100644
@@ -0,0 +1,12 @@
+Functions changes summary: 0 Removed, 1 Changed, 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+ [C]'function void x(unsigned char)' at test-loc-v1.c:1:1 has some indirect sub-type changes:
+ parameter 1 of type 'unsigned char' changed:
+ type name changed from 'unsigned char' to 'signed char'
+ type size hasn't changed
+
+
+
new file mode 100644
@@ -0,0 +1,12 @@
+Functions changes summary: 0 Removed, 1 Changed, 0 Added function
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+1 function with some indirect sub-type change:
+
+ [C]'function void x(unsigned char)' has some indirect sub-type changes:
+ parameter 1 of type 'unsigned char' changed:
+ type name changed from 'unsigned char' to 'signed char'
+ type size hasn't changed
+
+
+
@@ -93,6 +93,24 @@ InOutSpec in_out_specs[] =
"data/test-abidiff-exit/test2-filtered-removed-fns-report1.txt",
"output/test-abidiff-exit/test2-filtered-removed-fns-report1.txt"
},
+ {
+ "data/test-abidiff-exit/test-loc-v0.bi",
+ "data/test-abidiff-exit/test-loc-v1.bi",
+ "",
+ "",
+ abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+ "data/test-abidiff-exit/test-loc-with-locs-report.txt",
+ "output/test-abidiff-exit/test-loc-with-locs-report.txt"
+ },
+ {
+ "data/test-abidiff-exit/test-loc-v0.bi",
+ "data/test-abidiff-exit/test-loc-v1.bi",
+ "",
+ "--no-show-locs",
+ abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+ "data/test-abidiff-exit/test-loc-without-locs-report.txt",
+ "output/test-abidiff-exit/test-loc-without-locs-report.txt"
+ },
{0, 0, 0 ,0, abigail::tools_utils::ABIDIFF_OK, 0, 0}
};
@@ -1243,8 +1243,7 @@ main(int argc, char* argv[])
if (t1)
{
- diff_context_sptr diff_ctxt(new diff_context);
- translation_unit_diff_sptr diff = compute_diff(t1, t2, diff_ctxt);
+ translation_unit_diff_sptr diff = compute_diff(t1, t2, ctxt);
if (diff->has_changes())
diff->report(cout);
}