diff options
Diffstat (limited to 'libcpp/line-map.c')
-rw-r--r-- | libcpp/line-map.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libcpp/line-map.c b/libcpp/line-map.c index 61ab031..49b9487 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -122,8 +122,10 @@ get_combined_adhoc_loc (struct line_maps *set, { char *orig_data = (char *) set->location_adhoc_data_map.data; long long offset; - line_map_realloc reallocator - = set->reallocator ? set->reallocator : xrealloc; + /* Cast away extern "C" from the type of xrealloc. */ + line_map_realloc reallocator = (set->reallocator + ? set->reallocator + : (line_map_realloc) xrealloc); if (set->location_adhoc_data_map.allocated == 0) set->location_adhoc_data_map.allocated = 128; @@ -217,8 +219,10 @@ new_linemap (struct line_maps *set, /* We ran out of allocated line maps. Let's allocate more. */ unsigned alloc_size; - line_map_realloc reallocator - = set->reallocator ? set->reallocator : xrealloc; + /* Cast away extern "C" from the type of xrealloc. */ + line_map_realloc reallocator = (set->reallocator + ? set->reallocator + : (line_map_realloc) xrealloc); line_map_round_alloc_size_func round_alloc_size = set->round_alloc_size; @@ -430,8 +434,10 @@ linemap_enter_macro (struct line_maps *set, struct cpp_hashnode *macro_node, { struct line_map *map; source_location start_location; - line_map_realloc reallocator - = set->reallocator ? set->reallocator : xrealloc; + /* Cast away extern "C" from the type of xrealloc. */ + line_map_realloc reallocator = (set->reallocator + ? set->reallocator + : (line_map_realloc) xrealloc); start_location = LINEMAPS_MACRO_LOWEST_LOCATION (set) - num_tokens; |