c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix argument.
* c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix argument. (LAZY_HEX_FP_VALUES_CNT): Define. (lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp values rather than just 12. (builtin_define_with_hex_fp_value): Likewise. * include/cpplib.h (enum cpp_builtin_type): Change BT_LAST_USER from BT_FIRST_USER + 31 to BT_FIRST_USER + 63. From-SVN: r257118
This commit is contained in:
parent
1f2460766e
commit
53723269d6
@ -1,10 +1,19 @@
|
|||||||
|
2018-01-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* c-cppbuiltin.c (c_cpp_builtins): Use ggc_strdup for the fp_suffix
|
||||||
|
argument.
|
||||||
|
(LAZY_HEX_FP_VALUES_CNT): Define.
|
||||||
|
(lazy_hex_fp_values): Allow up to LAZY_HEX_FP_VALUES_CNT lazy hex fp
|
||||||
|
values rather than just 12.
|
||||||
|
(builtin_define_with_hex_fp_value): Likewise.
|
||||||
|
|
||||||
2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
|
2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
|
||||||
|
|
||||||
PR other/70268
|
PR other/70268
|
||||||
* c-family/c.opt (-fmacro-prefix-map): New option.
|
* c.opt (-fmacro-prefix-map): New option.
|
||||||
* c-family/c-opts.c (c_common_handle_option): Handle it.
|
* c-opts.c (c_common_handle_option): Handle it.
|
||||||
* c-family/c-lex.c (init_c_lex): Set remap_filename cpp callback.
|
* c-lex.c (init_c_lex): Set remap_filename cpp callback.
|
||||||
* c-family/c-ppoutput.c (init_pp_output): Likewise.
|
* c-ppoutput.c (init_pp_output): Likewise.
|
||||||
|
|
||||||
2018-01-17 David Malcolm <dmalcolm@redhat.com>
|
2018-01-17 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
@ -1124,8 +1124,8 @@ c_cpp_builtins (cpp_reader *pfile)
|
|||||||
floatn_nx_types[i].extended ? "X" : "");
|
floatn_nx_types[i].extended ? "X" : "");
|
||||||
sprintf (csuffix, "F%d%s", floatn_nx_types[i].n,
|
sprintf (csuffix, "F%d%s", floatn_nx_types[i].n,
|
||||||
floatn_nx_types[i].extended ? "x" : "");
|
floatn_nx_types[i].extended ? "x" : "");
|
||||||
builtin_define_float_constants (prefix, csuffix, "%s", csuffix,
|
builtin_define_float_constants (prefix, ggc_strdup (csuffix), "%s",
|
||||||
FLOATN_NX_TYPE_NODE (i));
|
csuffix, FLOATN_NX_TYPE_NODE (i));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For decfloat.h. */
|
/* For decfloat.h. */
|
||||||
@ -1571,7 +1571,14 @@ struct GTY(()) lazy_hex_fp_value_struct
|
|||||||
int digits;
|
int digits;
|
||||||
const char *fp_suffix;
|
const char *fp_suffix;
|
||||||
};
|
};
|
||||||
static GTY(()) struct lazy_hex_fp_value_struct lazy_hex_fp_values[12];
|
/* Number of the expensive to compute macros we should evaluate lazily.
|
||||||
|
Each builtin_define_float_constants invocation calls
|
||||||
|
builtin_define_with_hex_fp_value 4 times and builtin_define_float_constants
|
||||||
|
is called for FLT, DBL, LDBL and up to NUM_FLOATN_NX_TYPES times for
|
||||||
|
FLTNN*. */
|
||||||
|
#define LAZY_HEX_FP_VALUES_CNT (4 * (3 + NUM_FLOATN_NX_TYPES))
|
||||||
|
static GTY(()) struct lazy_hex_fp_value_struct
|
||||||
|
lazy_hex_fp_values[LAZY_HEX_FP_VALUES_CNT];
|
||||||
static GTY(()) int lazy_hex_fp_value_count;
|
static GTY(()) int lazy_hex_fp_value_count;
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
@ -1616,7 +1623,7 @@ builtin_define_with_hex_fp_value (const char *macro,
|
|||||||
char dec_str[64], buf[256], buf1[128], buf2[64];
|
char dec_str[64], buf[256], buf1[128], buf2[64];
|
||||||
|
|
||||||
/* This is very expensive, so if possible expand them lazily. */
|
/* This is very expensive, so if possible expand them lazily. */
|
||||||
if (lazy_hex_fp_value_count < 12
|
if (lazy_hex_fp_value_count < LAZY_HEX_FP_VALUES_CNT
|
||||||
&& flag_dump_macros == 0
|
&& flag_dump_macros == 0
|
||||||
&& !cpp_get_options (parse_in)->traditional)
|
&& !cpp_get_options (parse_in)->traditional)
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
|
2018-01-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* include/cpplib.h (enum cpp_builtin_type): Change BT_LAST_USER from
|
||||||
|
BT_FIRST_USER + 31 to BT_FIRST_USER + 63.
|
||||||
|
|
||||||
2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
|
2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
|
||||||
|
|
||||||
PR other/70268
|
PR other/70268
|
||||||
* include/cpplib.h (cpp_callbacks::remap_filename): New callback.
|
* include/cpplib.h (cpp_callbacks::remap_filename): New callback.
|
||||||
* libcpp/macro.c (_cpp_builtin_macro_text): Call remap_filename for
|
* macro.c (_cpp_builtin_macro_text): Call remap_filename for
|
||||||
__FILE__ and __BASE_FILE__.
|
__FILE__ and __BASE_FILE__.
|
||||||
|
|
||||||
2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
||||||
|
@ -719,7 +719,7 @@ enum cpp_builtin_type
|
|||||||
BT_COUNTER, /* `__COUNTER__' */
|
BT_COUNTER, /* `__COUNTER__' */
|
||||||
BT_HAS_ATTRIBUTE, /* `__has_attribute__(x)' */
|
BT_HAS_ATTRIBUTE, /* `__has_attribute__(x)' */
|
||||||
BT_FIRST_USER, /* User defined builtin macros. */
|
BT_FIRST_USER, /* User defined builtin macros. */
|
||||||
BT_LAST_USER = BT_FIRST_USER + 31
|
BT_LAST_USER = BT_FIRST_USER + 63
|
||||||
};
|
};
|
||||||
|
|
||||||
#define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
|
#define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
|
||||||
|
Loading…
Reference in New Issue
Block a user