aboutsummaryrefslogtreecommitdiff
path: root/libcpp/line-map.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/line-map.c')
-rw-r--r--libcpp/line-map.c18
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;