libabigail/tests/data/test-read-write/test18.xml
Dodji Seketeli b04ca87487 Fix handling of forward decl of classes
* abg-ir.h (class_decl::set_earlier_declaration): Move this
	out-of-line and add an overload.
	* src/abg-ir.cc (class_decl::set_earlier_declaration): Moved this
	out-of-line here and add an overload.
	* src/abg-reader.cc (build_class_decl): Really read the
	'decl-of-decl-id' property.  Do not make the definition use the id
	of the declaration.  Both have their id.
	* src/abg-writer.cc (write_class_decl):  Put a space before the
	property "def-of-decl-id".
	* tests/data/test-read-write/test18.xml: New test input.
	* tests/test-read-write.cc: De-serialize this new input, serialize
	it back and make sure both versions are identical.
2013-07-23 23:13:53 +02:00

31 lines
2.0 KiB
XML

<abi-instr version='1.0'>
<type-decl name='char' size-in-bits='8' alignment-in-bits='8' id='type-id-1'/>
<class-decl name='S' visibility='default' is-declaration-only='yes' id='type-id-2'/>
<pointer-type-def type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-3'/>
<type-decl name='void' alignment-in-bits='8' id='type-id-4'/>
<class-decl name='S' size-in-bits='8' alignment-in-bits='8' visibility='default' filepath='../../prtests/test8.cc' line='1' column='8' def-of-decl-id='type-id-2' id='type-id-5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='a' type-id='type-id-1' visibility='default' filepath='../../prtests/test8.cc' line='3' column='8'/>
</data-member>
<member-function access='public'>
<function-decl name='operator 1' mangled-name='_ZN1ScvcEv' filepath='../../prtests/test8.cc' line='15' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
<parameter type-id='type-id-3'/>
<return type-id='type-id-1'/>
</function-decl>
</member-function>
<member-function access='public'>
<function-decl name='set' mangled-name='_ZN1S3setEc' filepath='../../prtests/test8.cc' line='21' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
<parameter type-id='type-id-3'/>
<parameter type-id='type-id-1'/>
<return type-id='type-id-4'/>
</function-decl>
</member-function>
</class-decl>
<typedef-decl name='stype' type-id='type-id-5' filepath='../../prtests/test8.cc' line='26' column='11' id='type-id-6'/>
<reference-type-def kind='lvalue' type-id='type-id-6' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
<function-decl name='foo' mangled-name='_Z3fooR1S' filepath='../../prtests/test8.cc' line='29' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
<parameter type-id='type-id-7'/>
<return type-id='type-id-1'/>
</function-decl>
</abi-instr>