diff options
| author | mrg <mrg@NetBSD.org> | 2016-01-24 06:05:37 +0000 |
|---|---|---|
| committer | mrg <mrg@NetBSD.org> | 2016-01-24 06:05:37 +0000 |
| commit | 5ef59e75d24c86c2adf67df842dc6439cc8065cc (patch) | |
| tree | 8953da2e57b931b05f4b239ee0b476e550ab990a /external/gpl3/gcc/dist/libcpp/include | |
| parent | 765388af8c8bb2616c9e0d8a6d436fa57527a5d7 (diff) | |
import GCC 5.3.0. see these urls for details which are too large to
include here:
http://gcc.gnu.org/gcc-4.9/changes.html
http://gcc.gnu.org/gcc-5/changes.html
(note that GCC 5.x is a release stream like GCC 4.9.x, 4.8.x, etc.)
the main issues we will have are:
The default mode for C is now -std=gnu11 instead of -std=gnu89.
ARM:
The deprecated option -mwords-little-endian has been removed.
The options -mapcs, -mapcs-frame, -mtpcs-frame and -mtpcs-leaf-frame
which are only applicable to the old ABI have been deprecated.
MIPS:
The o32 ABI has been modified and extended. The o32 64-bit
floating-point register support is now obsolete and has been removed.
It has been replaced by three ABI extensions FPXX, FP64A, and FP64.
The meaning of the -mfp64 command-line option has changed. It is now
used to enable the FP64A and FP64 ABI extensions.
Diffstat (limited to 'external/gpl3/gcc/dist/libcpp/include')
| -rw-r--r-- | external/gpl3/gcc/dist/libcpp/include/cpp-id-data.h | 6 | ||||
| -rw-r--r-- | external/gpl3/gcc/dist/libcpp/include/line-map.h | 53 | ||||
| -rw-r--r-- | external/gpl3/gcc/dist/libcpp/include/mkdeps.h | 2 | ||||
| -rw-r--r-- | external/gpl3/gcc/dist/libcpp/include/symtab.h | 2 |
4 files changed, 51 insertions, 12 deletions
diff --git a/external/gpl3/gcc/dist/libcpp/include/cpp-id-data.h b/external/gpl3/gcc/dist/libcpp/include/cpp-id-data.h index de4ca2298c8..cf499a9cce9 100644 --- a/external/gpl3/gcc/dist/libcpp/include/cpp-id-data.h +++ b/external/gpl3/gcc/dist/libcpp/include/cpp-id-data.h @@ -1,5 +1,5 @@ /* Structures that hang off cpp_identifier, for PCH. - Copyright (C) 1986-2013 Free Software Foundation, Inc. + Copyright (C) 1986-2015 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -33,7 +33,9 @@ struct GTY(()) answer { /* Each macro definition is recorded in a cpp_macro structure. Variadic macros cannot occur with traditional cpp. */ struct GTY(()) cpp_macro { - /* Parameters, if any. */ + /* Parameters, if any. If parameter names use extended identifiers, + the original spelling of those identifiers, not the canonical + UTF-8 spelling, goes here. */ cpp_hashnode ** GTY ((nested_ptr (union tree_node, "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL", "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"), diff --git a/external/gpl3/gcc/dist/libcpp/include/line-map.h b/external/gpl3/gcc/dist/libcpp/include/line-map.h index a0d6da184ba..403d79800ed 100644 --- a/external/gpl3/gcc/dist/libcpp/include/line-map.h +++ b/external/gpl3/gcc/dist/libcpp/include/line-map.h @@ -1,5 +1,5 @@ /* Map logical line numbers to (source file, line number) pairs. - Copyright (C) 2001-2013 Free Software Foundation, Inc. + Copyright (C) 2001-2015 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -315,6 +315,10 @@ struct GTY(()) line_maps { line_map_round_alloc_size_func round_alloc_size; struct location_adhoc_data_map location_adhoc_data_map; + + /* The special location value that is used as spelling location for + built-in tokens. */ + source_location builtin_location; }; /* Returns the pointer to the memory region where information about @@ -447,8 +451,12 @@ extern source_location get_location_from_adhoc_loc (struct line_maps *, extern void rebuild_location_adhoc_htab (struct line_maps *); -/* Initialize a line map set. */ -extern void linemap_init (struct line_maps *); +/* Initialize a line map set. SET is the line map set to initialize + and BUILTIN_LOCATION is the special location value to be used as + spelling location for built-in tokens. This BUILTIN_LOCATION has + to be strictly less than RESERVED_LOCATION_COUNT. */ +extern void linemap_init (struct line_maps *set, + source_location builtin_location); /* Check for and warn about line_maps entered but not exited. */ @@ -515,7 +523,7 @@ int linemap_location_in_system_header_p (struct line_maps *, /* Return TRUE if LOCATION is a source code location of a token coming from a macro replacement-list at a macro expansion point, FALSE otherwise. */ -bool linemap_location_from_macro_expansion_p (struct line_maps *, +bool linemap_location_from_macro_expansion_p (const struct line_maps *, source_location); /* source_location values from 0 to RESERVED_LOCATION_COUNT-1 will @@ -571,6 +579,16 @@ bool linemap_location_from_macro_expansion_p (struct line_maps *, if (! (EXPR)) \ abort (); \ } while (0) + +/* Assert that becomes a conditional expression when checking is disabled at + compilation time. Use this for conditions that should not happen but if + they happen, it is better to handle them gracefully rather than crash + randomly later. + Usage: + + if (linemap_assert_fails(EXPR)) handle_error(); */ +#define linemap_assert_fails(EXPR) __extension__ \ + ({linemap_assert (EXPR); false;}) /* Assert that MAP encodes locations of tokens that are not part of the replacement-list of a macro expansion. */ @@ -578,7 +596,9 @@ bool linemap_location_from_macro_expansion_p (struct line_maps *, ({linemap_assert (!linemap_macro_expansion_map_p (LINE_MAP)); \ (LINE_MAP);}) #else -#define linemap_assert(EXPR) +/* Include EXPR, so that unused variable warnings do not occur. */ +#define linemap_assert(EXPR) ((void)(0 && (EXPR))) +#define linemap_assert_fails(EXPR) (! (EXPR)) #define linemap_check_ordinary(LINE_MAP) (LINE_MAP) #endif @@ -591,9 +611,18 @@ linemap_position_for_column (struct line_maps *, unsigned int); /* Encode and return a source location from a given line and column. */ -source_location linemap_position_for_line_and_column (struct line_map *, - linenum_type, - unsigned int); +source_location +linemap_position_for_line_and_column (const struct line_map *, + linenum_type, unsigned int); + +/* Encode and return a source_location starting from location LOC and + shifting it by OFFSET columns. This function does not support + virtual locations. */ +source_location +linemap_position_for_loc_and_offset (struct line_maps *set, + source_location loc, + unsigned int offset); + /* Return the file this map is for. */ #define LINEMAP_FILE(MAP) \ (linemap_check_ordinary (MAP)->d.ordinary.to_file) @@ -756,6 +785,14 @@ struct linemap_stats long duplicated_macro_maps_locations_size; }; +/* Return the highest location emitted for a given file for which + there is a line map in SET. FILE_NAME is the file name to + consider. If the function returns TRUE, *LOC is set to the highest + location emitted for that file. */ +bool linemap_get_file_highest_location (struct line_maps * set, + const char *file_name, + source_location *loc); + /* Compute and return statistics about the memory consumption of some parts of the line table SET. */ void linemap_get_statistics (struct line_maps *, struct linemap_stats *); diff --git a/external/gpl3/gcc/dist/libcpp/include/mkdeps.h b/external/gpl3/gcc/dist/libcpp/include/mkdeps.h index 8dffa25d49e..0fb260d8466 100644 --- a/external/gpl3/gcc/dist/libcpp/include/mkdeps.h +++ b/external/gpl3/gcc/dist/libcpp/include/mkdeps.h @@ -1,5 +1,5 @@ /* Dependency generator for Makefile fragments. - Copyright (C) 2000-2013 Free Software Foundation, Inc. + Copyright (C) 2000-2015 Free Software Foundation, Inc. Contributed by Zack Weinberg, Mar 2000 This program is free software; you can redistribute it and/or modify it diff --git a/external/gpl3/gcc/dist/libcpp/include/symtab.h b/external/gpl3/gcc/dist/libcpp/include/symtab.h index a4ea7192532..1b2b8d30861 100644 --- a/external/gpl3/gcc/dist/libcpp/include/symtab.h +++ b/external/gpl3/gcc/dist/libcpp/include/symtab.h @@ -1,5 +1,5 @@ /* Hash tables. - Copyright (C) 2000-2013 Free Software Foundation, Inc. + Copyright (C) 2000-2015 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the |
