diff options
author | Dodji Seketeli <dodji@seketeli.org> | 2013-06-28 18:47:40 +0200 |
---|---|---|
committer | Dodji Seketeli <dodji@seketeli.org> | 2013-06-28 18:47:40 +0200 |
commit | 82569e8eebad7c8eac5a463df1f5b0d08337c2ab (patch) | |
tree | 3084e08b551ae6cc07b77f086a31173241b7bf33 | |
parent | 5d9284c266b03dd5ae855e4f7026b6b669d2f395 (diff) | |
download | gcc-82569e8eebad7c8eac5a463df1f5b0d08337c2ab.tar.gz |
Add test for bases serialization support
* g++.dg/abi-dump/bases-0.C: New test case.
* g++.dg/abi-dump/bases-0.C.bi: New test input.
-rw-r--r-- | gcc/testsuite/g++.dg/abi-dump/bases-0.C | 140 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/abi-dump/bases-0.C.bi | 158 |
2 files changed, 298 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/abi-dump/bases-0.C b/gcc/testsuite/g++.dg/abi-dump/bases-0.C new file mode 100644 index 00000000000..1b304b4c34f --- /dev/null +++ b/gcc/testsuite/g++.dg/abi-dump/bases-0.C @@ -0,0 +1,140 @@ +// { dg-do compile { target { x86_64*-*-* } } } +// { dg-options "-fdump-abi=2" } +// { dg-skip-if "" { *-*-* } { "-flto" } { "" } } + +class B0 +{ + int m0; + +public: + + B0(); + + int + get_m0() const; + + void + set_m0(int a); +}; + +B0::B0() + : m0(0) +{ +} + +int +B0::get_m0() const +{ + return m0; +} + +void +B0::set_m0(int a) +{ + m0 = a; +} + +class B1 +{ + int m0; + +public: + + B1(); + + int + get_m0() const; + + void + set_m0(int a); +}; + +B1::B1() + : m0(0) +{ +} + +int +B1::get_m0() const +{ + return m0; +} + +void +B1::set_m0(int a) +{ + m0 = a; +} + +class B2 +{ + int m0; + +public: + + B2(); + + int + get_m0() const; + + void + set_m0(int a); +}; + +B2::B2() + : m0(0) +{ +} + +int +B2::get_m0() const +{ + return m0; +} + +void +B2::set_m0(int a) +{ + m0 = a; +} + +class S : public B0, public B1, virtual B2 +{ + int m0; + +public: + + S(); + + int + get_m0() const; + + void + set_m0(int a); +}; + +S::S() +: m0(0) +{ +} + +int +S::get_m0() const +{ + return m0; +} + +void +S::set_m0(int a) +{ + m0 = a; +} + +void +foo() +{ + S b; +} + +// { dg-final { compare-abi-dump-with "bases-0.C.bi" } } +// { dg-final { cleanup-dump "bi" } } diff --git a/gcc/testsuite/g++.dg/abi-dump/bases-0.C.bi b/gcc/testsuite/g++.dg/abi-dump/bases-0.C.bi new file mode 100644 index 00000000000..dd51db30cc5 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi-dump/bases-0.C.bi @@ -0,0 +1,158 @@ +<abi-instr version='1.0'> + <type-decl name='void' alignment-in-bits='8' id='type-id-1'/> + <function-decl name='foo' mangled-name='_Z3foov' filepath='bases-0.C' line='134' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <return type-id='type-id-1'/> + </function-decl> + <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/> + <class-decl name='B0' visibility='default' is-declaration-only='yes' id='type-id-3'/> + <pointer-type-def type-id='type-id-3' size-in-bits='64' alignment-in-bits='64' id='type-id-4'/> + <qualified-type-def type-id='type-id-3' const='yes' filepath='bases-0.C' line='5' column='7' id='type-id-5'/> + <pointer-type-def type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/> + <class-decl name='B0' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='bases-0.C' line='5' column='7' def-of-decl-id='type-id-3' id='type-id-7'> + <data-member access='private' layout-offset-in-bits='0'> + <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='bases-0.C' line='7' column='7'/> + </data-member> + <member-function access='public'> + <function-decl name='__base_ctor ' mangled-name='_ZN2B0C2Ev' filepath='bases-0.C' line='20' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-4'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='__comp_ctor ' mangled-name='_ZN2B0C1Ev' filepath='bases-0.C' line='20' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-4'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='get_m0' mangled-name='_ZNK2B06get_m0Ev' filepath='bases-0.C' line='26' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-6'/> + <return type-id='type-id-2'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='set_m0' mangled-name='_ZN2B06set_m0Ei' filepath='bases-0.C' line='32' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-4'/> + <parameter type-id='type-id-2'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + </class-decl> + <class-decl name='B1' visibility='default' is-declaration-only='yes' id='type-id-8'/> + <pointer-type-def type-id='type-id-8' size-in-bits='64' alignment-in-bits='64' id='type-id-9'/> + <qualified-type-def type-id='type-id-8' const='yes' filepath='bases-0.C' line='37' column='7' id='type-id-10'/> + <pointer-type-def type-id='type-id-10' size-in-bits='64' alignment-in-bits='64' id='type-id-11'/> + <class-decl name='B1' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='bases-0.C' line='37' column='7' def-of-decl-id='type-id-8' id='type-id-12'> + <data-member access='private' layout-offset-in-bits='0'> + <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='bases-0.C' line='39' column='7'/> + </data-member> + <member-function access='public'> + <function-decl name='__base_ctor ' mangled-name='_ZN2B1C2Ev' filepath='bases-0.C' line='52' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-9'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='__comp_ctor ' mangled-name='_ZN2B1C1Ev' filepath='bases-0.C' line='52' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-9'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='get_m0' mangled-name='_ZNK2B16get_m0Ev' filepath='bases-0.C' line='58' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-11'/> + <return type-id='type-id-2'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='set_m0' mangled-name='_ZN2B16set_m0Ei' filepath='bases-0.C' line='64' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-9'/> + <parameter type-id='type-id-2'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + </class-decl> + <class-decl name='B2' visibility='default' is-declaration-only='yes' id='type-id-13'/> + <pointer-type-def type-id='type-id-13' size-in-bits='64' alignment-in-bits='64' id='type-id-14'/> + <qualified-type-def type-id='type-id-13' const='yes' filepath='bases-0.C' line='69' column='7' id='type-id-15'/> + <pointer-type-def type-id='type-id-15' size-in-bits='64' alignment-in-bits='64' id='type-id-16'/> + <class-decl name='B2' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='bases-0.C' line='69' column='7' def-of-decl-id='type-id-13' id='type-id-17'> + <data-member access='private' layout-offset-in-bits='0'> + <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='bases-0.C' line='71' column='7'/> + </data-member> + <member-function access='public'> + <function-decl name='__base_ctor ' mangled-name='_ZN2B2C2Ev' filepath='bases-0.C' line='84' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-14'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='__comp_ctor ' mangled-name='_ZN2B2C1Ev' filepath='bases-0.C' line='84' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-14'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='get_m0' mangled-name='_ZNK2B26get_m0Ev' filepath='bases-0.C' line='90' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-16'/> + <return type-id='type-id-2'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='set_m0' mangled-name='_ZN2B26set_m0Ei' filepath='bases-0.C' line='96' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-14'/> + <parameter type-id='type-id-2'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + </class-decl> + <class-decl name='S' visibility='default' is-declaration-only='yes' id='type-id-18'/> + <pointer-type-def type-id='type-id-18' size-in-bits='64' alignment-in-bits='64' id='type-id-19'/> + <qualified-type-def type-id='type-id-1' const='yes' id='type-id-20'/> + <pointer-type-def type-id='type-id-20' size-in-bits='64' alignment-in-bits='64' id='type-id-21'/> + <pointer-type-def type-id='type-id-21' size-in-bits='64' alignment-in-bits='64' id='type-id-22'/> + <qualified-type-def type-id='type-id-18' const='yes' filepath='bases-0.C' line='101' column='7' id='type-id-23'/> + <pointer-type-def type-id='type-id-23' size-in-bits='64' alignment-in-bits='64' id='type-id-24'/> + <class-decl name='S' size-in-bits='192' alignment-in-bits='64' visibility='default' filepath='bases-0.C' line='101' column='7' def-of-decl-id='type-id-18' id='type-id-25'> + <base-class access='public' layout-offset-in-bits='64' type-id='type-id-7'/> + <base-class access='public' layout-offset-in-bits='96' type-id='type-id-12'/> + <base-class access='private' layout-offset-in-bits='160' is-virtual='yes' type-id='type-id-17'/> + <data-member access='private' layout-offset-in-bits='128'> + <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='bases-0.C' line='103' column='7'/> + </data-member> + <member-function access='public'> + <function-decl name='__base_ctor ' mangled-name='_ZN1SC2Ev' filepath='bases-0.C' line='116' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-19'/> + <parameter type-id='type-id-22'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='__comp_ctor ' mangled-name='_ZN1SC1Ev' filepath='bases-0.C' line='116' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-19'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='get_m0' mangled-name='_ZNK1S6get_m0Ev' filepath='bases-0.C' line='122' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-24'/> + <return type-id='type-id-2'/> + </function-decl> + </member-function> + <member-function access='public'> + <function-decl name='set_m0' mangled-name='_ZN1S6set_m0Ei' filepath='bases-0.C' line='128' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'> + <parameter type-id='type-id-19'/> + <parameter type-id='type-id-2'/> + <return type-id='type-id-1'/> + </function-decl> + </member-function> + </class-decl> + <class-decl name='__class_type_info_pseudo' size-in-bits='128' alignment-in-bits='64' visibility='default' id='type-id-26'/> + <qualified-type-def type-id='type-id-26' const='yes' id='type-id-27'/> + <var-decl name='_ZTI2B0' type-id='type-id-27' mangled-name='_ZTI2B0' visibility='default' binding='weak' filepath='bases-0.C' line='137' column='1'/> + <var-decl name='_ZTI2B2' type-id='type-id-27' mangled-name='_ZTI2B2' visibility='default' binding='weak' filepath='bases-0.C' line='137' column='1'/> + <var-decl name='_ZTI2B1' type-id='type-id-27' mangled-name='_ZTI2B1' visibility='default' binding='weak' filepath='bases-0.C' line='137' column='1'/> + <class-decl name='__vmi_class_type_info_pseudo3' size-in-bits='576' alignment-in-bits='64' visibility='default' id='type-id-28'/> + <qualified-type-def type-id='type-id-28' const='yes' id='type-id-29'/> + <var-decl name='_ZTI1S' type-id='type-id-29' mangled-name='_ZTI1S' visibility='default' binding='weak' filepath='bases-0.C' line='101' column='7'/> +</abi-instr> |