In the keyword-arguments overhaul, somehow the case in `make-trampoline'
for trivially `augmenting' the argument list for a vanilla message, as
opposed to hairy varargs or keyword messages, got lost, with the result
that they ended up with no arguments at all. Needless to say, the C
compiler is unhappy about this.
((keyword-message-p message)
(cons (make-argument *sod-key-pointer*
(c-type (* (void :const))))
((keyword-message-p message)
(cons (make-argument *sod-key-pointer*
(c-type (* (void :const))))
+ raw-args))
+ (t raw-args)))
(*keyword-struct-disposition* (if (effective-method-keywords method)
:pointer :null)))
(codegen-push codegen)
(*keyword-struct-disposition* (if (effective-method-keywords method)
:pointer :null)))
(codegen-push codegen)
[link = SodObject, nick = base]
class T1Base: SodObject {
[link = SodObject, nick = base]
class T1Base: SodObject {
+ int plain(int x) { STEP(x); return (x + 1); }
+
[combination = progn] void aprogn();
[combination = sum] int asum();
[combination = and] int aand();
[combination = progn] void aprogn();
[combination = sum] int asum();
[combination = and] int aand();
[link = T1Base, nick = mid]
class T1Mid: T1Base {
[link = T1Base, nick = mid]
class T1Mid: T1Base {
+ int base.plain(int x) { STEP(x - 1); return (CALL_NEXT_METHOD); }
void base.aprogn() { STEP(1); }
int base.asum() { return 1; }
int base.aand() { return 8; }
void base.aprogn() { STEP(1); }
int base.asum() { return 1; }
int base.aand() { return 8; }
if (!l) STEP(5);
v = T1Base_avec(t1);
if (!v.n) STEP(6);
if (!l) STEP(5);
v = T1Base_avec(t1);
if (!v.n) STEP(6);
+ STEP(T1Base_plain(t1, 7)); /* 7, 8 */
+ DONE(9);
}
prepare("aggregate, mid");
{ SOD_DECL(T1Mid, t1, NO_KWARGS);
}
prepare("aggregate, mid");
{ SOD_DECL(T1Mid, t1, NO_KWARGS);
v = T1Base_avec(t1);
if (!check_vec(&v, 19, -1)) STEP(6);
free_vec(&v);
v = T1Base_avec(t1);
if (!check_vec(&v, 19, -1)) STEP(6);
free_vec(&v);
+ STEP(T1Base_plain(t1, 8)); /* 7, 8, 9 */
+ DONE(10);
}
prepare("aggregate, sub");
{ SOD_DECL(T1Sub, t1, NO_KWARGS);
}
prepare("aggregate, sub");
{ SOD_DECL(T1Sub, t1, NO_KWARGS);