+ /*
+ * Check, that the types match. At least in C
+ * this might fail.
+ */
+ mtd_type = get_entity_type(ent);
+ call_type = get_Call_type(call);
+
+ if (mtd_type != call_type) {
+ /*
+ * Hmm, the types did not match, bad.
+ * This can happen in C when no prototyp is given
+ * or K&R style is used.
+ */
+#if 0
+ printf("Warning: Tail recursion fails because of different method and call types:\n");
+ dump_type(mtd_type);
+ dump_type(call_type);
+#endif
+ return 0;
+ }
+