break;
case ATA_INT_CST:
va_arg (argp, int);
- param_types[i] = aop_t_all_signed ();
+ param_types[i] = aop_t_signed32 ();
break;
case ATA_DOUBLE_CST:
va_arg (argp, double);
- param_types[i] = aop_t_all_fp ();
+ param_types[i] = aop_t_float64 ();
break;
case ATA_VOIDP_CST:
va_arg (argp, void *);
break;
case ATA_INT_CST:
int_cst = va_arg (argp, int);
+ /* TODO: This assumes that int is 32-bit on all systems.
+ There are some systems where this isn't true (16-bit
+ machines, perhaps?), but I'm not sure how to get an
+ explicit 32-bit integer type node. */
new_arg = build_int_cst (integer_type_node, int_cst);
VEC_safe_push (tree, heap, arg_list, new_arg);
break;
float_cst = va_arg (argp, double);
snprintf (float_buf, sizeof (float_buf), "%A", float_cst);
real_from_string (&r, (const char *)float_buf);
- new_arg = build_real (float_type_node, r);
+ new_arg = build_real (double_type_node, r);
VEC_safe_push (tree, heap, arg_list, new_arg);
break;
case ATA_VOIDP_CST: