summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@seketeli.org>2013-06-28 18:47:40 +0200
committerDodji Seketeli <dodji@seketeli.org>2013-06-28 18:47:40 +0200
commit82569e8eebad7c8eac5a463df1f5b0d08337c2ab (patch)
tree3084e08b551ae6cc07b77f086a31173241b7bf33
parent5d9284c266b03dd5ae855e4f7026b6b669d2f395 (diff)
downloadgcc-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.C140
-rw-r--r--gcc/testsuite/g++.dg/abi-dump/bases-0.C.bi158
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>