Andy Dougherty: # On Wed, 9 Oct 2002, Brent Dax wrote: # # > Can you try this? # > # > (at the top of the function...) # > va_list *arg = (va_list *) & (obj->data); # > (vararg accesses should look like...) # > va_arg(*arg, ...); # > (no end-of-function assignment should be necessary) # > # > If that works for you, I'll commit a version that uses it. # # That works for me, as does the simpler implicit cast # va_arg(obj->data, ...); # # Alas I fear neither one's going to work on PPC systems. As # Nicholas Clark pointed out, va_list may be an opaque type, so # that even innocent stuff like misc.c's obj.data = args won't # necessarily do what we want.
It seems that the current approach (obj.data = &args) is workable, considering that the PPC tinderbox is failing a test, not crashing during the compile. Can someone with a PPC box try to figure out why this is happening? /op/string.........# Failed test (t/op/string.t at line 1224) # got: '-1.13014e-302 # -1.13014e-302 # ' # expected: '80.43 # -1.11111 # ' # Looks like you failed 1 tests of 96. That test exercises string_to_num, which calls C<Parrot_sprintf_c(interpreter, "%vg", num);>. Apparently it's pulling something wrong from the varargs. --Brent Dax <[EMAIL PROTECTED]> @roles=map {"Parrot $_"} qw(embedding regexen Configure) Wire telegraph is a kind of a very, very long cat. You pull his tail in New York and his head is meowing in Los Angeles. And radio operates exactly the same way. The only difference is that there is no cat. --Albert Einstein (explaining radio)