expr.h (lang_expand_constant): Declare.
* expr.h (lang_expand_constant): Declare. * toplev.c (lang_expand_constant): Define it. * varasm.c (output_constant): Use it. From-SVN: r27058
This commit is contained in:
parent
f96b337ae4
commit
e697e20a89
@ -1,3 +1,9 @@
|
||||
Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* expr.h (lang_expand_constant): Declare.
|
||||
* toplev.c (lang_expand_constant): Define it.
|
||||
* varasm.c (output_constant): Use it.
|
||||
|
||||
Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
|
||||
|
@ -1015,6 +1015,12 @@ extern rtx (*lang_expand_expr) PROTO ((union tree_node *, rtx,
|
||||
enum machine_mode,
|
||||
enum expand_modifier modifier));
|
||||
|
||||
/* Hook called by output_constant for language-specific tree codes.
|
||||
It is up to the language front-end to install a hook if it has any
|
||||
such codes that output_constant needs to know about. Returns a
|
||||
language-independent constant equivalent to its input. */
|
||||
extern union tree_node * (*lang_expand_constant) PROTO((tree));
|
||||
|
||||
extern void init_all_optabs PROTO ((void));
|
||||
extern void init_mov_optab PROTO ((void));
|
||||
extern void do_jump_by_parts_equality_rtx PROTO((rtx, rtx, rtx));
|
||||
|
@ -375,6 +375,8 @@ typedef rtx (*lang_expand_expr_t)
|
||||
|
||||
lang_expand_expr_t lang_expand_expr = 0;
|
||||
|
||||
tree (*lang_expand_constant) PROTO((tree)) = 0;
|
||||
|
||||
/* Pointer to function to finish handling an incomplete decl at the
|
||||
end of compilation. */
|
||||
|
||||
|
@ -3897,6 +3897,13 @@ output_constant (exp, size)
|
||||
{
|
||||
register enum tree_code code = TREE_CODE (TREE_TYPE (exp));
|
||||
|
||||
/* Some front-ends use constants other than the standard
|
||||
language-indepdent varieties, but which may still be output
|
||||
directly. Give the front-end a chance to convert EXP to a
|
||||
language-independent representation. */
|
||||
if (lang_expand_constant)
|
||||
exp = (*lang_expand_constant) (exp);
|
||||
|
||||
if (size == 0 || flag_syntax_only)
|
||||
return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user