move broken example to derived_byvalue.i since it could take long to fix

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6369 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-10-07 22:02:50 +00:00
commit 86d466d06b
3 changed files with 44 additions and 28 deletions

View file

@ -46,6 +46,7 @@ LIBPREFIX = lib
# Broken C++ test cases. (Can be run individually using make testcase.cpptest.)
CPP_TEST_BROKEN += \
derived_nested \
derived_byvalue \
multiple_inheritance \
namespace_union \
overload_complicated \
@ -301,6 +302,7 @@ C_TEST_CASES += \
enums \
function_typedef \
inctest \
lextype \
lib_carrays \
lib_cdata \
lib_cmalloc \

View file

@ -0,0 +1,41 @@
%module derived_byvalue
%inline %{
struct Foo {
int x;
// this works
int rmethod(const Foo& f) { return f.x; }
// this doesn't when DerFoo (below) is introduced
int method(Foo f) { return f.x; }
};
struct Bar {
Foo a;
struct Foo b;
};
/*
When the next derived class is declared, the
following bad method is generated
static void *_DerFooTo_Foo(void *x) { // **** bad ****
return (void *)((Foo) ((DerFoo) x));
}
static void *_p_DerFooTo_p_Foo(void *x) { // *** good ***
return (void *)((Foo *) ((DerFoo *) x));
}
if the derived class is deleted, it works again
if the previos Foo::method
*/
struct DerFoo : Foo {
};
#
%}

View file

@ -3,13 +3,7 @@
%inline %{
struct Foo {
int x;
// this works
int rmethod(const Foo& f) { return f.x; }
// this doesn't when DerFoo (below) is introduced
int method(Foo f) { return f.x; }
int x;
};
struct Bar {
@ -17,25 +11,4 @@ struct Bar {
struct Foo b;
};
/*
When the next derived class is declared, the
following bad method is generated
static void *_DerFooTo_Foo(void *x) { // **** bad ****
return (void *)((Foo) ((DerFoo) x));
}
static void *_p_DerFooTo_p_Foo(void *x) { // *** good ***
return (void *)((Foo *) ((DerFoo *) x));
}
if the derived class is deleted, it works again
if the previos Foo::method
*/
struct DerFoo : Foo {
};
#
%}