diff options
author | Ben Cheng <bccheng@google.com> | 2014-04-22 13:33:12 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-04-22 13:33:12 -0700 |
commit | e3cc64dec20832769406aa38cde83c7dd4194bf4 (patch) | |
tree | ef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/c-family | |
parent | f33c7b3122b1d7950efa88067c9a156229ba647b (diff) | |
download | toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.gz toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.bz2 toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.zip |
[4.9] GCC 4.9.0 official release refresh
Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767
Diffstat (limited to 'gcc-4.9/gcc/c-family')
-rw-r--r-- | gcc-4.9/gcc/c-family/ChangeLog | 36 | ||||
-rw-r--r-- | gcc-4.9/gcc/c-family/c-common.c | 1 | ||||
-rw-r--r-- | gcc-4.9/gcc/c-family/c-common.h | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/c-family/c-ubsan.c | 13 | ||||
-rw-r--r-- | gcc-4.9/gcc/c-family/c.opt | 2 | ||||
-rw-r--r-- | gcc-4.9/gcc/c-family/cilk.c | 1 |
6 files changed, 47 insertions, 8 deletions
diff --git a/gcc-4.9/gcc/c-family/ChangeLog b/gcc-4.9/gcc/c-family/ChangeLog index 536b4fc4c..805ba9ca8 100644 --- a/gcc-4.9/gcc/c-family/ChangeLog +++ b/gcc-4.9/gcc/c-family/ChangeLog @@ -1,3 +1,39 @@ +2014-04-22 Release Manager + + * GCC 4.9.0 released. + +2014-04-15 Igor Zamyatin <igor.zamyatin@intel.com> + + PR middle-end/60467 + * cilk.c (cilk_set_spawn_marker): Remove FUNCTION_DECL + as possible argument for Cilk_spawn. + +2014-04-08 Marek Polacek <polacek@redhat.com> + + PR sanitizer/60745 + * c-ubsan.c: Include asan.h. + (ubsan_instrument_return): Call initialize_sanitizer_builtins. + +2014-04-03 Nathan Sidwell <nathan@codesourcery.com> + + * c.opt (Wnon-virtual-dtor): Auto set when Weffc++. + +2014-04-02 Marek Polacek <polacek@redhat.com> + + * c-common.h (c_expand_expr): Remove declaration. + +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-26 Jakub Jelinek <jakub@redhat.com> + + * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift, + ubsan_instrument_vla, ubsan_instrument_return): Adjust + ubsan_create_data callers. + 2014-03-22 Jakub Jelinek <jakub@redhat.com> PR debug/60603 diff --git a/gcc-4.9/gcc/c-family/c-common.c b/gcc-4.9/gcc/c-family/c-common.c index abd96fbe9..03731b4b8 100644 --- a/gcc-4.9/gcc/c-family/c-common.c +++ b/gcc-4.9/gcc/c-family/c-common.c @@ -10453,6 +10453,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, vNULL, function, v, NULL); diff --git a/gcc-4.9/gcc/c-family/c-common.h b/gcc-4.9/gcc/c-family/c-common.h index 1099b1089..24959d83e 100644 --- a/gcc-4.9/gcc/c-family/c-common.h +++ b/gcc-4.9/gcc/c-family/c-common.h @@ -928,8 +928,6 @@ extern bool vector_targets_convertible_p (const_tree t1, const_tree t2); extern bool vector_types_convertible_p (const_tree t1, const_tree t2, bool emit_lax_note); extern tree c_build_vec_perm_expr (location_t, tree, tree, tree, bool = true); -extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *); - extern void init_c_lex (void); extern void c_cpp_builtins (cpp_reader *); diff --git a/gcc-4.9/gcc/c-family/c-ubsan.c b/gcc-4.9/gcc/c-family/c-ubsan.c index 610c010bd..e89ebc187 100644 --- a/gcc-4.9/gcc/c-family/c-ubsan.c +++ b/gcc-4.9/gcc/c-family/c-ubsan.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "ubsan.h" #include "c-family/c-common.h" #include "c-family/c-ubsan.h" +#include "asan.h" /* Instrument division by zero and INT_MIN / -1. If not instrumenting, return NULL_TREE. */ @@ -73,7 +74,7 @@ ubsan_instrument_division (location_t loc, tree op0, tree op1) make sure it gets evaluated before the condition. */ t = fold_build2 (COMPOUND_EXPR, TREE_TYPE (t), op0, t); tree data = ubsan_create_data ("__ubsan_overflow_data", - loc, NULL, + &loc, NULL, ubsan_type_descriptor (type, false), NULL_TREE); data = build_fold_addr_expr_loc (loc, data); @@ -142,7 +143,7 @@ ubsan_instrument_shift (location_t loc, enum tree_code code, make sure it gets evaluated before the condition. */ t = fold_build2 (COMPOUND_EXPR, TREE_TYPE (t), op0, t); tree data = ubsan_create_data ("__ubsan_shift_data", - loc, NULL, + &loc, NULL, ubsan_type_descriptor (type0, false), ubsan_type_descriptor (type1, false), NULL_TREE); @@ -169,7 +170,7 @@ ubsan_instrument_vla (location_t loc, tree size) t = fold_build2 (LE_EXPR, boolean_type_node, size, build_int_cst (type, 0)); tree data = ubsan_create_data ("__ubsan_vla_data", - loc, NULL, + &loc, NULL, ubsan_type_descriptor (type, false), NULL_TREE); data = build_fold_addr_expr_loc (loc, data); @@ -185,7 +186,11 @@ ubsan_instrument_vla (location_t loc, tree size) tree ubsan_instrument_return (location_t loc) { - tree data = ubsan_create_data ("__ubsan_missing_return_data", loc, + /* It is possible that PCH zapped table with definitions of sanitizer + builtins. Reinitialize them if needed. */ + initialize_sanitizer_builtins (); + + tree data = ubsan_create_data ("__ubsan_missing_return_data", &loc, NULL, NULL_TREE); tree t = builtin_decl_explicit (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN); return build_call_expr_loc (loc, t, 1, build_fold_addr_expr_loc (loc, data)); diff --git a/gcc-4.9/gcc/c-family/c.opt b/gcc-4.9/gcc/c-family/c.opt index 7d0a2cd4a..2abf66cb7 100644 --- a/gcc-4.9/gcc/c-family/c.opt +++ b/gcc-4.9/gcc/c-family/c.opt @@ -569,7 +569,7 @@ C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning Warn when non-templatized friend functions are declared within a template Wnon-virtual-dtor -C++ ObjC++ Var(warn_nonvdtor) Warning +C++ ObjC++ Var(warn_nonvdtor) Warning LangEnabledBy(C++ ObjC++,Weffc++) Warn about non-virtual destructors Wnonnull diff --git a/gcc-4.9/gcc/c-family/cilk.c b/gcc-4.9/gcc/c-family/cilk.c index 6a7bf4f1e..bf549ad17 100644 --- a/gcc-4.9/gcc/c-family/cilk.c +++ b/gcc-4.9/gcc/c-family/cilk.c @@ -99,7 +99,6 @@ cilk_set_spawn_marker (location_t loc, tree fcall) it. */ return false; else if (TREE_CODE (fcall) != CALL_EXPR - && TREE_CODE (fcall) != FUNCTION_DECL /* In C++, TARGET_EXPR is generated when we have an overloaded '=' operator. */ && TREE_CODE (fcall) != TARGET_EXPR) |