fix aliasing warning.
This commit is contained in:
parent
e90a1ce024
commit
b9a7cce232
@ -1082,22 +1082,24 @@
|
|||||||
int heap_arity = aux_stack[HEAP_ARITY_ENTRY];
|
int heap_arity = aux_stack[HEAP_ARITY_ENTRY];
|
||||||
int vars_arity = aux_stack[VARS_ARITY_ENTRY];
|
int vars_arity = aux_stack[VARS_ARITY_ENTRY];
|
||||||
int subs_arity = aux_stack[SUBS_ARITY_ENTRY];
|
int subs_arity = aux_stack[SUBS_ARITY_ENTRY];
|
||||||
volatile Float dbl;
|
volatile union {
|
||||||
volatile Term *t_dbl = (Term *)((void *) &dbl);
|
Float dbl;
|
||||||
|
Term ts[SIZEOF_DOUBLE/SIZEOF_INT_P];
|
||||||
|
} td;
|
||||||
Term t;
|
Term t;
|
||||||
|
|
||||||
#if SIZEOF_DOUBLE == 2 * SIZEOF_INT_P
|
#if SIZEOF_DOUBLE == 2 * SIZEOF_INT_P
|
||||||
t_dbl[0] = aux_stack[HEAP_ENTRY(1)];
|
td.ts[0] = aux_stack[HEAP_ENTRY(1)];
|
||||||
t_dbl[1] = aux_stack[HEAP_ENTRY(3)]; /* jump the first extension mark */
|
td.ts[1] = aux_stack[HEAP_ENTRY(3)]; /* jump the first extension mark */
|
||||||
heap_arity -= 4;
|
heap_arity -= 4;
|
||||||
TOP_STACK = aux_stack = &aux_stack[4]; /* jump until the second extension mark */
|
TOP_STACK = aux_stack = &aux_stack[4]; /* jump until the second extension mark */
|
||||||
#else /* SIZEOF_DOUBLE == SIZEOF_INT_P */
|
#else /* SIZEOF_DOUBLE == SIZEOF_INT_P */
|
||||||
t_dbl[0] = aux_stack[HEAP_ENTRY(1)];
|
td.ts[0] = aux_stack[HEAP_ENTRY(1)];
|
||||||
heap_arity -= 2;
|
heap_arity -= 2;
|
||||||
TOP_STACK = aux_stack = &aux_stack[2]; /* jump until the extension mark */
|
TOP_STACK = aux_stack = &aux_stack[2]; /* jump until the extension mark */
|
||||||
#endif /* SIZEOF_DOUBLE x SIZEOF_INT_P */
|
#endif /* SIZEOF_DOUBLE x SIZEOF_INT_P */
|
||||||
TOP_STACK[HEAP_ARITY_ENTRY] = heap_arity;
|
TOP_STACK[HEAP_ARITY_ENTRY] = heap_arity;
|
||||||
t = MkFloatTerm(dbl);
|
t = MkFloatTerm(td.dbl);
|
||||||
aux_stack_term_instr();
|
aux_stack_term_instr();
|
||||||
ENDPBOp();
|
ENDPBOp();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user