aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2017-02-27 21:27:50 +0300
committerFelix Fietkau <nbd@nbd.name>2017-05-02 15:17:30 +0200
commit34e83930197410e1d7ff306792f7426b7dce9195 (patch)
treea8de039f8d61135d6b8b690c7adfcadf386b2118 /toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch
parent2b27e62e74fa73086e505f93d6bf037a16c66e55 (diff)
downloadupstream-34e83930197410e1d7ff306792f7426b7dce9195.tar.gz
upstream-34e83930197410e1d7ff306792f7426b7dce9195.tar.bz2
upstream-34e83930197410e1d7ff306792f7426b7dce9195.zip
toolchain/arc: update to the most recent release arc-2016.09
arc-2016.09 is the most recent toolchain for ARC cores and it is based on top of upstream Binutils 2.27 and GCC 6.2.1. With updated major version of GCC we copied all GCC 6.x patches for ARC as well as Bintils 2.27 patches. Note that toochain sports ARCv4 ABI and so must be used with 4.8+ Linux kernels. Even though it will build v4.4 kernel perfectly fine on attempt to run user-space apps they won't work with older kernel. That said previuosly sent RFC patches with Linux kernel update are required: [1] https://patchwork.ozlabs.org/patch/726686/ [2] https://patchwork.ozlabs.org/patch/726687/ Signed-off-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
Diffstat (limited to 'toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch')
-rw-r--r--toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch b/toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch
deleted file mode 100644
index 1b9a5b3081..0000000000
--- a/toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch
+++ /dev/null
@@ -1,94 +0,0 @@
---- a/gcc/c/c-typeck.c
-+++ b/gcc/c/c-typeck.c
-@@ -62,9 +62,9 @@ int in_typeof;
- if expr.original_code == SIZEOF_EXPR. */
- tree c_last_sizeof_arg;
-
--/* Nonzero if we've already printed a "missing braces around initializer"
-- message within this initializer. */
--static int missing_braces_mentioned;
-+/* Nonzero if we might need to print a "missing braces around
-+ initializer" message within this initializer. */
-+static int found_missing_braces;
-
- static int require_constant_value;
- static int require_constant_elements;
-@@ -6363,6 +6363,9 @@ static int constructor_nonconst;
- /* 1 if this constructor is erroneous so far. */
- static int constructor_erroneous;
-
-+/* 1 if this constructor is the universal zero initializer { 0 }. */
-+static int constructor_zeroinit;
-+
- /* Structure for managing pending initializer elements, organized as an
- AVL tree. */
-
-@@ -6524,7 +6527,7 @@ start_init (tree decl, tree asmspec_tree
- constructor_stack = 0;
- constructor_range_stack = 0;
-
-- missing_braces_mentioned = 0;
-+ found_missing_braces = 0;
-
- spelling_base = 0;
- spelling_size = 0;
-@@ -6619,6 +6622,7 @@ really_start_incremental_init (tree type
- constructor_type = type;
- constructor_incremental = 1;
- constructor_designated = 0;
-+ constructor_zeroinit = 1;
- designator_depth = 0;
- designator_erroneous = 0;
-
-@@ -6816,11 +6820,8 @@ push_init_level (int implicit, struct ob
- set_nonincremental_init (braced_init_obstack);
- }
-
-- if (implicit == 1 && warn_missing_braces && !missing_braces_mentioned)
-- {
-- missing_braces_mentioned = 1;
-- warning_init (OPT_Wmissing_braces, "missing braces around initializer");
-- }
-+ if (implicit == 1)
-+ found_missing_braces = 1;
-
- if (TREE_CODE (constructor_type) == RECORD_TYPE
- || TREE_CODE (constructor_type) == UNION_TYPE)
-@@ -6953,16 +6954,23 @@ pop_init_level (int implicit, struct obs
- }
- }
-
-+ if (vec_safe_length (constructor_elements) != 1)
-+ constructor_zeroinit = 0;
-+
-+ /* Warn when some structs are initialized with direct aggregation. */
-+ if (!implicit && found_missing_braces && warn_missing_braces
-+ && !constructor_zeroinit)
-+ {
-+ warning_init (OPT_Wmissing_braces,
-+ "missing braces around initializer");
-+ }
-+
- /* Warn when some struct elements are implicitly initialized to zero. */
- if (warn_missing_field_initializers
- && constructor_type
- && TREE_CODE (constructor_type) == RECORD_TYPE
- && constructor_unfilled_fields)
- {
-- bool constructor_zeroinit =
-- (vec_safe_length (constructor_elements) == 1
-- && integer_zerop ((*constructor_elements)[0].value));
--
- /* Do not warn for flexible array members or zero-length arrays. */
- while (constructor_unfilled_fields
- && (!DECL_SIZE (constructor_unfilled_fields)
-@@ -8077,6 +8085,9 @@ process_init_element (struct c_expr valu
- designator_depth = 0;
- designator_erroneous = 0;
-
-+ if (!implicit && value.value && !integer_zerop (value.value))
-+ constructor_zeroinit = 0;
-+
- /* Handle superfluous braces around string cst as in
- char x[] = {"foo"}; */
- if (string_flag