| /* This interface file tests for type-related typemap substitutions. |
| */ |
| |
| %module typemap_subst |
| |
| %warnfilter(SWIGWARN_RUBY_WRONG_NAME) xyzzy; /* Ruby, wrong class name */ |
| |
| %inline %{ |
| struct xyzzy { |
| int member; |
| }; |
| %} |
| |
| %typemap(in) const struct xyzzy **TEST |
| ($type temp, $*type startemp, $&type amptemp, $basetype basetemp) |
| { |
| { /* Test C type name substitutions */ |
| $ltype a = (struct xyzzy **) NULL; |
| const struct xyzzy **b = ($type) NULL; |
| $<ype c = (struct xyzzy ***) NULL; |
| const struct xyzzy ***d = ($&type) NULL; |
| $*ltype e = *a; |
| $basetype f; |
| f.member = 42; |
| (void)a; |
| (void)b; |
| (void)c; |
| (void)d; |
| (void)e; |
| (void)f; |
| } |
| { /* Test locals */ |
| basetemp.member = 0; |
| startemp = &basetemp; |
| temp = &startemp; |
| amptemp = &temp; |
| (void)amptemp; |
| } |
| { /* Test descriptors */ |
| void *desc = $descriptor; |
| void *stardesc = $*descriptor; |
| void *ampdesc = $&descriptor; |
| (void)desc; |
| (void)stardesc; |
| (void)ampdesc; |
| } |
| { /* Test mangled names */ |
| void *desc = SWIGTYPE$mangle; |
| void *stardesc = SWIGTYPE$*mangle; |
| void *ampdesc = SWIGTYPE$&mangle; |
| (void)desc; |
| (void)stardesc; |
| (void)ampdesc; |
| } |
| { /* Test descriptor macro */ |
| void *desc = $descriptor(const struct xyzzy **); |
| void *stardesc = $descriptor(const struct xyzzy *); |
| void *ampdesc = $descriptor(const struct xyzzy ***); |
| (void)desc; |
| (void)stardesc; |
| (void)ampdesc; |
| } |
| $1 = ($ltype) temp; |
| } |
| |
| /* Java, C#, Go and D modules don't use SWIG's runtime type system */ |
| #if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD) |
| %inline %{ |
| void foo(const struct xyzzy **TEST) {} |
| %} |
| #endif |
| |
| |
| |
| |