add error when passing a struct/class by value + derivation

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6368 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-10-07 21:54:18 +00:00
commit 7fbced8eb1

View file

@ -3,7 +3,13 @@
%inline %{
struct Foo {
int x;
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 {
@ -11,4 +17,25 @@ 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 {
};
#
%}