summaryrefslogtreecommitdiff
path: root/external/gpl3/gcc/dist/libcpp/include
diff options
context:
space:
mode:
authormrg <mrg@NetBSD.org>2016-01-24 06:05:37 +0000
committermrg <mrg@NetBSD.org>2016-01-24 06:05:37 +0000
commit5ef59e75d24c86c2adf67df842dc6439cc8065cc (patch)
tree8953da2e57b931b05f4b239ee0b476e550ab990a /external/gpl3/gcc/dist/libcpp/include
parent765388af8c8bb2616c9e0d8a6d436fa57527a5d7 (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.h6
-rw-r--r--external/gpl3/gcc/dist/libcpp/include/line-map.h53
-rw-r--r--external/gpl3/gcc/dist/libcpp/include/mkdeps.h2
-rw-r--r--external/gpl3/gcc/dist/libcpp/include/symtab.h2
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