* toplev.c (lang_expand_constant): Define it.
* varasm.c (output_constant): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27058
138bc75d-0d04-0410-961f-
82ee72b054a4
+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):
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));
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. */
{
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;