diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-06-18 13:00:04 -0700 |
---|---|---|
committer | Pavel Chupin <pavel.v.chupin@intel.com> | 2014-06-19 22:38:42 +0400 |
commit | f190d6284359da8ae8694b2d2e14b01602a959ed (patch) | |
tree | d4e0548e7cec02d60b1082368032e66a1c509a02 /gcc-4.8/gcc/c-family | |
parent | 4ff2f42147bc128ce38789071d98e55844cd3a5e (diff) | |
download | toolchain_gcc-f190d6284359da8ae8694b2d2e14b01602a959ed.tar.gz toolchain_gcc-f190d6284359da8ae8694b2d2e14b01602a959ed.tar.bz2 toolchain_gcc-f190d6284359da8ae8694b2d2e14b01602a959ed.zip |
Merge GCC 4.8.3
Change-Id: I0abe59f7705b3eccc6b2f123af75b2e30917696a
Diffstat (limited to 'gcc-4.8/gcc/c-family')
-rw-r--r-- | gcc-4.8/gcc/c-family/ChangeLog | 79 | ||||
-rw-r--r-- | gcc-4.8/gcc/c-family/c-common.c | 27 | ||||
-rw-r--r-- | gcc-4.8/gcc/c-family/c-opts.c | 11 | ||||
-rw-r--r-- | gcc-4.8/gcc/c-family/c-pragma.c | 11 | ||||
-rw-r--r-- | gcc-4.8/gcc/c-family/c.opt | 10 |
5 files changed, 118 insertions, 20 deletions
diff --git a/gcc-4.8/gcc/c-family/ChangeLog b/gcc-4.8/gcc/c-family/ChangeLog index 794be14c4..8100afca2 100644 --- a/gcc-4.8/gcc/c-family/ChangeLog +++ b/gcc-4.8/gcc/c-family/ChangeLog @@ -1,3 +1,82 @@ +2014-05-22 Release Manager + + * GCC 4.8.3 released. + +2014-05-06 Richard Biener <rguenther@suse.de> + + * c-opts.c (c_common_post_options): For -freestanding, + -fno-hosted and -fno-builtin disable pattern recognition + if not enabled explicitely. + +2014-04-10 Jakub Jelinek <jakub@redhat.com> + + Backport from mainline + 2014-03-28 Jakub Jelinek <jakub@redhat.com> + + PR c++/60689 + * c-common.c (add_atomic_size_parameter): When creating new + params vector, push the size argument first. + + 2014-03-22 Jakub Jelinek <jakub@redhat.com> + + PR debug/60603 + * c-opts.c (c_finish_options): Restore cb_file_change call to + <built-in>. + + 2014-03-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/36282 + * c-pragma.c (apply_pragma_weak): Only look at + TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) if + DECL_ASSEMBLER_NAME_SET_P (decl). + (maybe_apply_pending_pragma_weaks): Exit early if + vec_safe_is_empty (pending_weaks) rather than only when + !pending_weaks. + (maybe_apply_pragma_weak): Likewise. If !DECL_ASSEMBLER_NAME_SET_P, + set assembler name back to NULL afterwards. + +2014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr> + + Backport from mainline + 2013-09-14 Iain Sandoe <iains@gcc.gnu.org> + + PR target/48094 + * c.opt (fgnu-runtime, fnext-runtime, fobjc-abi-version, + fobjc-gc, freplace-objc-classes): Accept for LTO. + +2014-03-06 Jakub Jelinek <jakub@redhat.com> + + Backport from mainline + 2014-02-19 Jakub Jelinek <jakub@redhat.com> + + PR c/37743 + * c-common.c (c_common_nodes_and_builtins): When initializing + c_uint{16,32,64}_type_node, also set corresponding + uint{16,32,64}_type_node to the same value. + + 2014-02-12 Jakub Jelinek <jakub@redhat.com> + + PR c/60101 + * c-common.c (merge_tlist): If copy is true, call new_tlist, + if false, add ADD itself, rather than vice versa. + (verify_tree): For COND_EXPR, don't call merge_tlist with non-zero + copy. For SAVE_EXPR, only call merge_tlist once. + +2013-11-29 Jakub Jelinek <jakub@redhat.com> + + PR c/59280 + * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE, + goto invalid. If it is error_mark_node, don't issue further + diagnostics. + +2013-11-04 Marek Polacek <polacek@redhat.com> + + Backport from mainline + 2013-11-04 Marek Polacek <polacek@redhat.com> + + PR c++/58979 + * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case. + 2013-10-16 Release Manager * GCC 4.8.2 released. diff --git a/gcc-4.8/gcc/c-family/c-common.c b/gcc-4.8/gcc/c-family/c-common.c index 0d91cc3cf..86f64ec60 100644 --- a/gcc-4.8/gcc/c-family/c-common.c +++ b/gcc-4.8/gcc/c-family/c-common.c @@ -2894,7 +2894,7 @@ merge_tlist (struct tlist **to, struct tlist *add, int copy) } if (!found) { - *end = copy ? add : new_tlist (NULL, add->expr, add->writer); + *end = copy ? new_tlist (NULL, add->expr, add->writer) : add; end = &(*end)->next; *end = 0; } @@ -3052,7 +3052,7 @@ verify_tree (tree x, struct tlist **pbefore_sp, struct tlist **pno_sp, verify_tree (TREE_OPERAND (x, 0), &tmp_before, &tmp_list2, NULL_TREE); warn_for_collisions (tmp_list2); merge_tlist (pbefore_sp, tmp_before, 0); - merge_tlist (pbefore_sp, tmp_list2, 1); + merge_tlist (pbefore_sp, tmp_list2, 0); tmp_list3 = tmp_nosp = 0; verify_tree (TREE_OPERAND (x, 1), &tmp_list3, &tmp_nosp, NULL_TREE); @@ -3156,12 +3156,7 @@ verify_tree (tree x, struct tlist **pbefore_sp, struct tlist **pno_sp, warn_for_collisions (tmp_nosp); tmp_list3 = 0; - while (tmp_nosp) - { - struct tlist *t = tmp_nosp; - tmp_nosp = t->next; - merge_tlist (&tmp_list3, t, 0); - } + merge_tlist (&tmp_list3, tmp_nosp, 0); t->cache_before_sp = tmp_before; t->cache_after_sp = tmp_list3; } @@ -5511,13 +5506,13 @@ c_common_nodes_and_builtins (void) uint8_type_node = TREE_TYPE (identifier_global_value (c_get_ident (UINT8_TYPE))); if (UINT16_TYPE) - c_uint16_type_node = + c_uint16_type_node = uint16_type_node = TREE_TYPE (identifier_global_value (c_get_ident (UINT16_TYPE))); if (UINT32_TYPE) - c_uint32_type_node = + c_uint32_type_node = uint32_type_node = TREE_TYPE (identifier_global_value (c_get_ident (UINT32_TYPE))); if (UINT64_TYPE) - c_uint64_type_node = + c_uint64_type_node = uint64_type_node = TREE_TYPE (identifier_global_value (c_get_ident (UINT64_TYPE))); if (INT_LEAST8_TYPE) int_least8_type_node = @@ -6917,6 +6912,10 @@ get_priority (tree args, bool is_destructor) } arg = TREE_VALUE (args); + if (TREE_CODE (arg) == IDENTIFIER_NODE) + goto invalid; + if (arg == error_mark_node) + return DEFAULT_INIT_PRIORITY; arg = default_conversion (arg); if (!host_integerp (arg, /*pos=*/0) || !INTEGRAL_TYPE_P (TREE_TYPE (arg))) @@ -9763,6 +9762,11 @@ invalid_indirection_error (location_t loc, tree type, ref_operator errstring) "invalid type argument of %<->%> (have %qT)", type); break; + case RO_ARROW_STAR: + error_at (loc, + "invalid type argument of %<->*%> (have %qT)", + type); + break; case RO_IMPLICIT_CONVERSION: error_at (loc, "invalid type argument of implicit conversion (have %qT)", @@ -10198,6 +10202,7 @@ add_atomic_size_parameter (unsigned n, location_t loc, tree function, len = params->length (); vec_alloc (v, len + 1); + v->quick_push (build_int_cst (size_type_node, n)); for (z = 0; z < len; z++) v->quick_push ((*params)[z]); f = build_function_call_vec (loc, function, v, NULL); diff --git a/gcc-4.8/gcc/c-family/c-opts.c b/gcc-4.8/gcc/c-family/c-opts.c index 4b6990a60..5fce7b653 100644 --- a/gcc-4.8/gcc/c-family/c-opts.c +++ b/gcc-4.8/gcc/c-family/c-opts.c @@ -840,6 +840,12 @@ c_common_post_options (const char **pfilename) if (flag_objc_exceptions && !flag_objc_sjlj_exceptions) flag_exceptions = 1; + /* If -ffreestanding, -fno-hosted or -fno-builtin then disable + pattern recognition. */ + if (!global_options_set.x_flag_tree_loop_distribute_patterns + && flag_no_builtin) + flag_tree_loop_distribute_patterns = 0; + /* -Woverlength-strings is off by default, but is enabled by -Wpedantic. It is never enabled in C++, as the minimum limit is not normative in that standard. */ @@ -1258,7 +1264,9 @@ c_finish_options (void) { size_t i; - { + cb_file_change (parse_in, + linemap_add (line_table, LC_RENAME, 0, + _("<built-in>"), 0)); /* Make sure all of the builtins about to be declared have BUILTINS_LOCATION has their source_location. */ source_location builtins_loc = BUILTINS_LOCATION; @@ -1268,7 +1276,6 @@ c_finish_options (void) c_cpp_builtins (parse_in); cpp_stop_forcing_token_locations (parse_in); - } /* We're about to send user input to cpplib, so make it warn for things that we previously (when we sent it internal definitions) diff --git a/gcc-4.8/gcc/c-family/c-pragma.c b/gcc-4.8/gcc/c-family/c-pragma.c index 7d8a1a605..02cb36a60 100644 --- a/gcc-4.8/gcc/c-family/c-pragma.c +++ b/gcc-4.8/gcc/c-family/c-pragma.c @@ -259,6 +259,7 @@ apply_pragma_weak (tree decl, tree value) if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl) && !DECL_WEAK (decl) /* Don't complain about a redundant #pragma. */ + && DECL_ASSEMBLER_NAME_SET_P (decl) && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) warning (OPT_Wpragmas, "applying #pragma weak %q+D after first use " "results in unspecified behavior", decl); @@ -276,7 +277,7 @@ maybe_apply_pragma_weak (tree decl) /* Avoid asking for DECL_ASSEMBLER_NAME when it's not needed. */ /* No weak symbols pending, take the short-cut. */ - if (!pending_weaks) + if (vec_safe_is_empty (pending_weaks)) return; /* If it's not visible outside this file, it doesn't matter whether it's weak. */ @@ -288,7 +289,13 @@ maybe_apply_pragma_weak (tree decl) if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL) return; + if (DECL_ASSEMBLER_NAME_SET_P (decl)) id = DECL_ASSEMBLER_NAME (decl); + else + { + id = DECL_ASSEMBLER_NAME (decl); + SET_DECL_ASSEMBLER_NAME (decl, NULL_TREE); + } FOR_EACH_VEC_ELT (*pending_weaks, i, pe) if (id == pe->name) @@ -309,7 +316,7 @@ maybe_apply_pending_pragma_weaks (void) pending_weak *pe; symtab_node target; - if (!pending_weaks) + if (vec_safe_is_empty (pending_weaks)) return; FOR_EACH_VEC_ELT (*pending_weaks, i, pe) diff --git a/gcc-4.8/gcc/c-family/c.opt b/gcc-4.8/gcc/c-family/c.opt index 10ae84dbb..4da80b0ed 100644 --- a/gcc-4.8/gcc/c-family/c.opt +++ b/gcc-4.8/gcc/c-family/c.opt @@ -933,7 +933,7 @@ C++ ObjC++ Var(flag_no_gnu_keywords, 0) Recognize GNU-defined keywords fgnu-runtime -ObjC ObjC++ Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME) +ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime,0) Init(NEXT_OBJC_RUNTIME) Generate code for GNU runtime environment fgnu89-inline @@ -1007,7 +1007,7 @@ fnew-abi C++ ObjC++ Ignore Warn(switch %qs is no longer supported) fnext-runtime -ObjC ObjC++ Report RejectNegative Var(flag_next_runtime) +ObjC ObjC++ LTO Report RejectNegative Var(flag_next_runtime) Generate code for NeXT (Apple Mac OS X) runtime environment fnil-receivers @@ -1025,7 +1025,7 @@ C++ ObjC++ Optimization Var(flag_nothrow_opt) Treat a throw() exception specification as noexcept to improve code size fobjc-abi-version= -ObjC ObjC++ Joined Report RejectNegative UInteger Var(flag_objc_abi) +ObjC ObjC++ LTO Joined Report RejectNegative UInteger Var(flag_objc_abi) Specify which ABI to use for Objective-C family code and meta-data generation. ; Generate special '- .cxx_construct' and '- .cxx_destruct' methods @@ -1045,7 +1045,7 @@ ObjC ObjC++ Var(flag_objc_exceptions) Enable Objective-C exception and synchronization syntax fobjc-gc -ObjC ObjC++ Var(flag_objc_gc) +ObjC ObjC++ LTO Var(flag_objc_gc) Enable garbage collection (GC) in Objective-C/Objective-C++ programs fobjc-nilcheck @@ -1105,7 +1105,7 @@ C++ ObjC++ Var(flag_pretty_templates) Init(1) -fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments freplace-objc-classes -ObjC ObjC++ Var(flag_replace_objc_classes) +ObjC ObjC++ LTO Var(flag_replace_objc_classes) Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime frepo |