merge from gcc
This commit is contained in:
		| @@ -1,3 +1,27 @@ | ||||
| 2014-12-11  Uros Bizjak  <ubizjak@gmail.com> | ||||
|             Ben Elliston  <bje@au.ibm.com> | ||||
|             Manuel Lopez-Ibanez  <manu@gcc.gnu.org> | ||||
|  | ||||
| 	* libiberty.h (xvasprintf): Declare. | ||||
|  | ||||
| 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com> | ||||
|  | ||||
| 	* hashtab.h, splay-tree.h: Remove GTY markers. | ||||
|  | ||||
| 2014-12-08  Mark Wielaard  <mjw@redhat.com> | ||||
|  | ||||
| 	PR debug/60782 | ||||
| 	* dwarf2.def: Add DWARFv5 DW_TAG_atomic_type. | ||||
|  | ||||
| 2014-11-21  Mark Wielaard  <mjw@redhat.com> | ||||
|  | ||||
| 	* dwarf2.h: Add DW_LANG_C_plus_plus_11, DW_LANG_C11 and | ||||
| 	DW_LANG_C_plus_plus_14. | ||||
|  | ||||
| 2014-11-25  Mark Wielaard  <mjw@redhat.com> | ||||
|  | ||||
| 	* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute. | ||||
|  | ||||
| 2014-11-14  Shinichiro Hamaji  <shinichiro.hamaji@gmail.com> | ||||
|  | ||||
| 	* dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags) | ||||
|   | ||||
| @@ -133,6 +133,8 @@ DW_TAG (DW_TAG_shared_type, 0x40) | ||||
| DW_TAG (DW_TAG_type_unit, 0x41) | ||||
| DW_TAG (DW_TAG_rvalue_reference_type, 0x42) | ||||
| DW_TAG (DW_TAG_template_alias, 0x43) | ||||
| /* DWARF 5.  */ | ||||
| DW_TAG (DW_TAG_atomic_type, 0x47) | ||||
|  | ||||
| DW_TAG_DUP (DW_TAG_lo_user, 0x4080) | ||||
| DW_TAG_DUP (DW_TAG_hi_user, 0xffff) | ||||
| @@ -308,6 +310,8 @@ DW_AT (DW_AT_data_bit_offset, 0x6b) | ||||
| DW_AT (DW_AT_const_expr, 0x6c) | ||||
| DW_AT (DW_AT_enum_class, 0x6d) | ||||
| DW_AT (DW_AT_linkage_name, 0x6e) | ||||
| /* DWARF 5.  */ | ||||
| DW_AT (DW_AT_noreturn, 0x87) | ||||
|  | ||||
| DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start.  */ | ||||
| DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end.  */ | ||||
|   | ||||
| @@ -309,6 +309,10 @@ enum dwarf_source_language | ||||
|     /* DWARF 5.  */ | ||||
|     DW_LANG_Go = 0x0016, | ||||
|  | ||||
|     DW_LANG_C_plus_plus_11 = 0x001a, /* dwarf5.20141029.pdf DRAFT */ | ||||
|     DW_LANG_C11 = 0x001d, | ||||
|     DW_LANG_C_plus_plus_14 = 0x0021, | ||||
|  | ||||
|     DW_LANG_lo_user = 0x8000,	/* Implementation-defined range start.  */ | ||||
|     DW_LANG_hi_user = 0xffff,	/* Implementation-defined range start.  */ | ||||
|  | ||||
|   | ||||
| @@ -39,10 +39,6 @@ extern "C" { | ||||
|  | ||||
| #include "ansidecl.h" | ||||
|  | ||||
| #ifndef GTY | ||||
| #define GTY(X) | ||||
| #endif | ||||
|  | ||||
| /* The type for a hash code.  */ | ||||
| typedef unsigned int hashval_t; | ||||
|  | ||||
| @@ -97,7 +93,7 @@ typedef void (*htab_free_with_arg) (void *, void *); | ||||
|    functions mentioned below.  The size of this structure is subject to | ||||
|    change.  */ | ||||
|  | ||||
| struct GTY(()) htab { | ||||
| struct htab { | ||||
|   /* Pointer to hash function.  */ | ||||
|   htab_hash hash_f; | ||||
|  | ||||
| @@ -108,7 +104,7 @@ struct GTY(()) htab { | ||||
|   htab_del del_f; | ||||
|  | ||||
|   /* Table itself.  */ | ||||
|   void ** GTY ((use_param, length ("%h.size"))) entries; | ||||
|   void **entries; | ||||
|  | ||||
|   /* Current size (in entries) of the hash table.  */ | ||||
|   size_t size; | ||||
| @@ -132,7 +128,7 @@ struct GTY(()) htab { | ||||
|   htab_free free_f; | ||||
|  | ||||
|   /* Alternate allocate/free functions, which take an extra argument.  */ | ||||
|   void * GTY((skip)) alloc_arg; | ||||
|   void *alloc_arg; | ||||
|   htab_alloc_with_arg alloc_with_arg_f; | ||||
|   htab_free_with_arg free_with_arg_f; | ||||
|  | ||||
|   | ||||
| @@ -636,6 +636,11 @@ extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; | ||||
| extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0); | ||||
| #endif | ||||
|  | ||||
| /* Like vasprintf but allocates memory without fail. This works like | ||||
|    xmalloc.  */ | ||||
|  | ||||
| extern char *xvasprintf (const char *, va_list) ATTRIBUTE_MALLOC ATTRIBUTE_PRINTF(1,0); | ||||
|  | ||||
| #if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF | ||||
| /* Like sprintf but prints at most N characters.  */ | ||||
| extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3; | ||||
|   | ||||
| @@ -44,10 +44,6 @@ extern "C" { | ||||
| #include <inttypes.h> | ||||
| #endif | ||||
|  | ||||
| #ifndef GTY | ||||
| #define GTY(X) | ||||
| #endif | ||||
|  | ||||
| /* Use typedefs for the key and data types to facilitate changing | ||||
|    these types, if necessary.  These types should be sufficiently wide | ||||
|    that any pointer or scalar can be cast to these types, and then | ||||
| @@ -86,22 +82,22 @@ typedef void *(*splay_tree_allocate_fn) (int, void *); | ||||
| typedef void (*splay_tree_deallocate_fn) (void *, void *); | ||||
|  | ||||
| /* The nodes in the splay tree.  */ | ||||
| struct GTY(()) splay_tree_node_s { | ||||
| struct splay_tree_node_s { | ||||
|   /* The key.  */ | ||||
|   splay_tree_key GTY ((use_param1)) key; | ||||
|   splay_tree_key key; | ||||
|  | ||||
|   /* The value.  */ | ||||
|   splay_tree_value GTY ((use_param2)) value; | ||||
|   splay_tree_value value; | ||||
|  | ||||
|   /* The left and right children, respectively.  */ | ||||
|   splay_tree_node GTY ((use_params)) left; | ||||
|   splay_tree_node GTY ((use_params)) right; | ||||
|   splay_tree_node left; | ||||
|   splay_tree_node right; | ||||
| }; | ||||
|  | ||||
| /* The splay tree itself.  */ | ||||
| struct GTY(()) splay_tree_s { | ||||
| struct splay_tree_s { | ||||
|   /* The root of the tree.  */ | ||||
|   splay_tree_node GTY ((use_params)) root; | ||||
|   splay_tree_node root; | ||||
|  | ||||
|   /* The comparision function.  */ | ||||
|   splay_tree_compare_fn comp; | ||||
| @@ -119,7 +115,7 @@ struct GTY(()) splay_tree_s { | ||||
|   splay_tree_deallocate_fn deallocate; | ||||
|  | ||||
|   /* Parameter for allocate/free functions.  */ | ||||
|   void * GTY((skip)) allocate_data; | ||||
|   void *allocate_data; | ||||
| }; | ||||
|  | ||||
| typedef struct splay_tree_s *splay_tree; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user