aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/c-family
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
committerBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
commite3cc64dec20832769406aa38cde83c7dd4194bf4 (patch)
treeef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/c-family
parentf33c7b3122b1d7950efa88067c9a156229ba647b (diff)
downloadtoolchain_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/ChangeLog36
-rw-r--r--gcc-4.9/gcc/c-family/c-common.c1
-rw-r--r--gcc-4.9/gcc/c-family/c-common.h2
-rw-r--r--gcc-4.9/gcc/c-family/c-ubsan.c13
-rw-r--r--gcc-4.9/gcc/c-family/c.opt2
-rw-r--r--gcc-4.9/gcc/c-family/cilk.c1
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)