aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9')
-rw-r--r--gcc-4.9/gcc/config/linux-android.h10
-rw-r--r--gcc-4.9/gcc/cp/call.c71
-rw-r--r--gcc-4.9/gcc/cp/cp-tree.h45
-rw-r--r--gcc-4.9/gcc/cp/init.c16
-rw-r--r--gcc-4.9/gcc/gcc.c27
5 files changed, 77 insertions, 92 deletions
diff --git a/gcc-4.9/gcc/config/linux-android.h b/gcc-4.9/gcc/config/linux-android.h
index 76654c34b..d8a66c7fe 100644
--- a/gcc-4.9/gcc/config/linux-android.h
+++ b/gcc-4.9/gcc/config/linux-android.h
@@ -60,13 +60,3 @@
#define ANDROID_ENDFILE_SPEC \
"%{shared: crtend_so%O%s;: crtend_android%O%s}"
-
-#define PROFILE_OR_COV_LINK_SPEC \
- "%{fprofile-arcs|fprofile-generate*|coverage:-lgcov " \
- LINUX_OR_ANDROID_LD("", "-lgcc") "}" SANITIZER_SPEC
-
-//
-// For Android apparently we want to temporarily
-// disable __cxa_throw_bad_array_new_length
-//
-#define DISABLE_CXA_THROW_BAD_ARRAY_NEW_LENGTH 1
diff --git a/gcc-4.9/gcc/cp/call.c b/gcc-4.9/gcc/cp/call.c
index 74de4f273..db43bf10d 100644
--- a/gcc-4.9/gcc/cp/call.c
+++ b/gcc-4.9/gcc/cp/call.c
@@ -462,7 +462,7 @@ struct conversion_info {
/* The type of the formal argument. */
tree to_type;
};
-
+
struct rejection_reason {
enum rejection_reason_code code;
union {
@@ -1589,7 +1589,7 @@ reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags,
conv->rvaluedness_matches_p
= (TYPE_REF_IS_RVALUE (rto) == TYPE_REF_IS_RVALUE (rfrom));
else
- conv->rvaluedness_matches_p
+ conv->rvaluedness_matches_p
= (TYPE_REF_IS_RVALUE (rto) == !is_lvalue);
if ((gl_kind & clk_bitfield) != 0
@@ -2490,16 +2490,16 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
break;
if (TYPE_PTR_P (type1) && TYPE_PTR_P (type2))
break;
- if (TREE_CODE (type1) == ENUMERAL_TYPE
+ if (TREE_CODE (type1) == ENUMERAL_TYPE
&& TREE_CODE (type2) == ENUMERAL_TYPE)
break;
- if (TYPE_PTR_P (type1)
+ if (TYPE_PTR_P (type1)
&& null_ptr_cst_p (args[1]))
{
type2 = type1;
break;
}
- if (null_ptr_cst_p (args[0])
+ if (null_ptr_cst_p (args[0])
&& TYPE_PTR_P (type2))
{
type1 = type2;
@@ -2662,7 +2662,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
if (ARITHMETIC_TYPE_P (type1))
break;
return;
-
+
default:
gcc_unreachable ();
}
@@ -3940,7 +3940,7 @@ print_error_for_call_failure (tree fn, vec<tree, va_gc> *args, bool any_viable_p
ARGS. */
tree
-build_new_function_call (tree fn, vec<tree, va_gc> **args, bool koenig_p,
+build_new_function_call (tree fn, vec<tree, va_gc> **args, bool koenig_p,
tsubst_flags_t complain)
{
struct z_candidate *candidates, *cand;
@@ -4041,8 +4041,9 @@ build_operator_new_call (tree fnname, vec<tree, va_gc> **args,
if (size_check != NULL_TREE)
{
tree errval = TYPE_MAX_VALUE (sizetype);
- if (cxx_dialect >= cxx11 && flag_exceptions &&
- DISABLE_CXA_THROW_BAD_ARRAY_NEW_LENGTH)
+ if (cxx_dialect >= cxx11 && flag_exceptions
+ /* ANDROID - temporarily disable __cxa_throw_bad_array_new_length call. */
+ && !TARGET_ANDROID)
errval = throw_bad_array_new_length ();
*size = fold_build3 (COND_EXPR, sizetype, size_check,
original_size, errval);
@@ -4233,7 +4234,7 @@ build_op_call_1 (tree obj, vec<tree, va_gc> **args, tsubst_flags_t complain)
{
if (complain & tf_error)
{
- error ("call of %<(%T) (%A)%> is ambiguous",
+ error ("call of %<(%T) (%A)%> is ambiguous",
TREE_TYPE (obj), build_tree_list_vec (*args));
print_z_candidates (location_of (TREE_TYPE (obj)), candidates);
}
@@ -4462,7 +4463,7 @@ build_conditional_expr_1 (location_t loc, tree arg1, tree arg2, tree arg3,
if (!arg2)
{
if (complain & tf_error)
- pedwarn (loc, OPT_Wpedantic,
+ pedwarn (loc, OPT_Wpedantic,
"ISO C++ forbids omitting the middle term of a ?: expression");
/* Make sure that lvalues remain lvalues. See g++.oliva/ext1.C. */
@@ -5160,7 +5161,7 @@ add_candidates (tree fns, tree first_arg, const vec<tree, va_gc> *args,
fn,
ctype,
explicit_targs,
- fn_first_arg,
+ fn_first_arg,
fn_args,
return_type,
access_path,
@@ -5376,7 +5377,7 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
-fpermissive. */
else
{
- const char *msg = (flag_permissive)
+ const char *msg = (flag_permissive)
? G_("no %<%D(int)%> declared for postfix %qs,"
" trying prefix operator instead")
: G_("no %<%D(int)%> declared for postfix %qs");
@@ -5579,8 +5580,8 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
return cp_build_array_ref (input_location, arg1, arg2, complain);
case MEMBER_REF:
- return build_m_component_ref (cp_build_indirect_ref (arg1, RO_ARROW_STAR,
- complain),
+ return build_m_component_ref (cp_build_indirect_ref (arg1, RO_ARROW_STAR,
+ complain),
arg2, complain);
/* The caller will deal with these. */
@@ -6111,7 +6112,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
about to bind it to a reference, in which case we need to
leave it as an lvalue. */
if (inner >= 0)
- {
+ {
expr = decl_constant_value_safe (expr);
if (expr == null_node && INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (totype))
/* If __null has been converted to an integer type, we do not
@@ -6205,7 +6206,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
expr = convert_like_real (next_conversion (convs), expr, fn, argnum,
convs->kind == ck_ref_bind ? -1 : 1,
- convs->kind == ck_ref_bind ? issue_conversion_warnings : false,
+ convs->kind == ck_ref_bind ? issue_conversion_warnings : false,
c_cast_p,
complain);
if (expr == error_mark_node)
@@ -6273,7 +6274,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
return error_mark_node;
}
- /* If necessary, create a temporary.
+ /* If necessary, create a temporary.
VA_ARG_EXPR and CONSTRUCTOR expressions are special cases
that need temporaries, even when their types are reference
@@ -6621,7 +6622,7 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain)
tree bitfield_type;
/* If VAL is a bitfield, then -- since it has already been converted
- to TYPE -- it cannot have a precision greater than TYPE.
+ to TYPE -- it cannot have a precision greater than TYPE.
If it has a smaller precision, we must widen it here. For
example, passing "int f:3;" to a function expecting an "int" will
@@ -6635,7 +6636,7 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain)
if we call convert_bitfield_to_declared_type, the bitfield will
be converted to "long long". */
bitfield_type = is_bitfield_expr_with_lowered_type (val);
- if (bitfield_type
+ if (bitfield_type
&& TYPE_PRECISION (TREE_TYPE (val)) < TYPE_PRECISION (type))
val = convert_to_integer (TYPE_MAIN_VARIANT (bitfield_type), val);
@@ -6717,7 +6718,7 @@ get_function_version_dispatcher (tree fn)
return dispatcher_decl;
}
-/* fn is a function version dispatcher that is marked used. Mark all the
+/* fn is a function version dispatcher that is marked used. Mark all the
semantically identical function versions it will dispatch as used. */
void
@@ -7058,7 +7059,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
: complain & (~tf_warning));
val = convert_for_arg_passing (type, val, complain);
-
+
if (val == error_mark_node)
return error_mark_node;
else
@@ -7098,8 +7099,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
if (! flag_elide_constructors)
/* Do things the hard way. */;
- else if (cand->num_convs == 1
- && (DECL_COPY_CONSTRUCTOR_P (fn)
+ else if (cand->num_convs == 1
+ && (DECL_COPY_CONSTRUCTOR_P (fn)
|| DECL_MOVE_CONSTRUCTOR_P (fn)))
{
tree targ;
@@ -7297,11 +7298,11 @@ build_cxx_call (tree fn, int nargs, tree *argarray,
return error_mark_node;
/* If it is a built-in array notation function, then the return type of
- the function is the element type of the array passed in as array
+ the function is the element type of the array passed in as array
notation (i.e. the first parameter of the function). */
- if (flag_cilkplus && TREE_CODE (fn) == CALL_EXPR)
+ if (flag_cilkplus && TREE_CODE (fn) == CALL_EXPR)
{
- enum built_in_function bif =
+ enum built_in_function bif =
is_cilkplus_reduce_builtin (CALL_EXPR_FN (fn));
if (bif == BUILT_IN_CILKPLUS_SEC_REDUCE_ADD
|| bif == BUILT_IN_CILKPLUS_SEC_REDUCE_MUL
@@ -7309,7 +7310,7 @@ build_cxx_call (tree fn, int nargs, tree *argarray,
|| bif == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN
|| bif == BUILT_IN_CILKPLUS_SEC_REDUCE
|| bif == BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING)
- {
+ {
if (call_expr_nargs (fn) == 0)
{
error_at (EXPR_LOCATION (fn), "Invalid builtin arguments");
@@ -7317,13 +7318,13 @@ build_cxx_call (tree fn, int nargs, tree *argarray,
}
/* for bif == BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_ZERO or
BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO or
- BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO or
+ BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO or
BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_NONZERO or
BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND or
BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND
The pre-defined return-type is the correct one. */
- tree array_ntn = CALL_EXPR_ARG (fn, 0);
- TREE_TYPE (fn) = TREE_TYPE (array_ntn);
+ tree array_ntn = CALL_EXPR_ARG (fn, 0);
+ TREE_TYPE (fn) = TREE_TYPE (array_ntn);
return fn;
}
}
@@ -7384,7 +7385,7 @@ build_java_interface_fn_ref (tree fn, tree instance)
/* Look up the pointer to the runtime java.lang.Class object for `instance'.
This is the first entry in the vtable. */
- klass_ref = build_vtbl_ref (cp_build_indirect_ref (instance, RO_NULL,
+ klass_ref = build_vtbl_ref (cp_build_indirect_ref (instance, RO_NULL,
tf_warning_or_error),
integer_zero_node);
@@ -7568,7 +7569,7 @@ build_special_member_call (tree instance, tree name, vec<tree, va_gc> **args,
if ((complain & tf_error)
&& (flags & LOOKUP_DELEGATING_CONS)
- && name == complete_ctor_identifier
+ && name == complete_ctor_identifier
&& TREE_CODE (ret) == CALL_EXPR
&& (DECL_ABSTRACT_ORIGIN (TREE_OPERAND (CALL_EXPR_FN (ret), 0))
== current_function_decl))
@@ -8745,7 +8746,7 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn,
source = TREE_TYPE (source);
if (warning (OPT_Wconversion, "choosing %qD over %qD", w->fn, l->fn)
&& warning (OPT_Wconversion, " for conversion from %qT to %qT",
- source, w->second_conv->type))
+ source, w->second_conv->type))
{
inform (input_location, " because conversion sequence for the argument is better");
}
@@ -8846,7 +8847,7 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn,
tree f2 = TREE_TYPE (cand2->fn);
tree p1 = TYPE_ARG_TYPES (f1);
tree p2 = TYPE_ARG_TYPES (f2);
-
+
/* Check if cand1->fn and cand2->fn are versions of the same function. It
is possible that cand1->fn and cand2->fn are function versions but of
different functions. Check types to see if they are versions of the same
diff --git a/gcc-4.9/gcc/cp/cp-tree.h b/gcc-4.9/gcc/cp/cp-tree.h
index 582988c30..ac60ad5b9 100644
--- a/gcc-4.9/gcc/cp/cp-tree.h
+++ b/gcc-4.9/gcc/cp/cp-tree.h
@@ -465,7 +465,7 @@ typedef enum expr_list_kind {
ELK_INIT, /* initializer */
ELK_MEM_INIT, /* member initializer */
ELK_FUNC_CAST /* functional cast */
-} expr_list_kind;
+} expr_list_kind;
/* Possible cases of implicit bad rhs conversions. */
typedef enum impl_conv_rhs {
@@ -662,7 +662,7 @@ typedef enum cp_trait_kind
struct GTY (()) tree_trait_expr {
struct tree_common common;
tree type1;
- tree type2;
+ tree type2;
enum cp_trait_kind kind;
};
@@ -817,7 +817,7 @@ union GTY((desc ("cp_tree_node_structure (&%h)"),
struct tree_default_arg GTY ((tag ("TS_CP_DEFAULT_ARG"))) default_arg;
struct tree_deferred_noexcept GTY ((tag ("TS_CP_DEFERRED_NOEXCEPT"))) deferred_noexcept;
struct lang_identifier GTY ((tag ("TS_CP_IDENTIFIER"))) identifier;
- struct tree_static_assert GTY ((tag ("TS_CP_STATIC_ASSERT")))
+ struct tree_static_assert GTY ((tag ("TS_CP_STATIC_ASSERT")))
static_assertion;
struct tree_argument_pack_select GTY ((tag ("TS_CP_ARGUMENT_PACK_SELECT")))
argument_pack_select;
@@ -2694,7 +2694,7 @@ extern void decl_shadowed_for_var_insert (tree, tree);
TREE_PURPOSE is the TEMPLATE_DECL of which this entity is a
specialization or abstract instance. The TREE_VALUE is the
template arguments used to specialize the template.
-
+
Consider:
template <typename T> struct S { friend void f(T) {} };
@@ -2884,7 +2884,7 @@ extern void decl_shadowed_for_var_insert (tree, tree);
template <typename T> struct S {};
template <typename T> struct S<T*> {};
-
+
the CLASSTPYE_TI_TEMPLATE for S<int*> will be S, not the S<T*>. */
#define CLASSTYPE_TI_TEMPLATE(NODE) TI_TEMPLATE (CLASSTYPE_TEMPLATE_INFO (NODE))
#define CLASSTYPE_TI_ARGS(NODE) TI_ARGS (CLASSTYPE_TEMPLATE_INFO (NODE))
@@ -3001,7 +3001,7 @@ extern void decl_shadowed_for_var_insert (tree, tree);
select. */
#define ARGUMENT_PACK_SELECT_INDEX(NODE) \
(((struct tree_argument_pack_select *)ARGUMENT_PACK_SELECT_CHECK (NODE))->index)
-
+
/* In an ARGUMENT_PACK_SELECT, the actual underlying argument that the
ARGUMENT_PACK_SELECT represents. */
#define ARGUMENT_PACK_SELECT_ARG(NODE) \
@@ -3308,7 +3308,7 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
/* [basic.fundamental]
Integral and floating types are collectively called arithmetic
- types.
+ types.
As a GNU extension, we also accept complex types.
@@ -3326,7 +3326,7 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
Arithmetic types, enumeration types, pointer types,
pointer-to-member types, and std::nullptr_t are collectively called
scalar types.
-
+
Keep these checks in ascending code order. */
#define SCALAR_TYPE_P(TYPE) \
(TYPE_PTRDATAMEM_P (TYPE) \
@@ -3346,7 +3346,7 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
Scoped enumeration types are different from normal (unscoped)
enumeration types in several ways:
-
+
- The enumerators of a scoped enumeration type are only available
within the scope of the enumeration type and not in the
enclosing scope. For example, the Red color can be referred to
@@ -3892,18 +3892,18 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
template <> int min<int> (int, int),
3=explicit instantiation, e.g.:
-
+
template int min<int> (int, int);
Note that NODE will be marked as a specialization even if the
template it is instantiating is not a primary template. For
example, given:
- template <typename T> struct O {
+ template <typename T> struct O {
void f();
- struct I {};
+ struct I {};
};
-
+
both O<int>::f and O<int>::I will be marked as instantiations.
If DECL_USE_TEMPLATE is nonzero, then DECL_TEMPLATE_INFO will also
@@ -5040,7 +5040,7 @@ extern bool pragma_java_exceptions;
extern bool check_dtor_name (tree, tree);
bool magic_varargs_p (tree);
-extern tree build_conditional_expr (location_t, tree, tree, tree,
+extern tree build_conditional_expr (location_t, tree, tree, tree,
tsubst_flags_t);
extern tree build_addr_func (tree, tsubst_flags_t);
extern void set_flags_from_callee (tree);
@@ -5052,7 +5052,7 @@ extern bool sufficient_parms_p (const_tree);
extern tree type_decays_to (tree);
extern tree build_user_type_conversion (tree, tree, int,
tsubst_flags_t);
-extern tree build_new_function_call (tree, vec<tree, va_gc> **, bool,
+extern tree build_new_function_call (tree, vec<tree, va_gc> **, bool,
tsubst_flags_t);
extern tree build_operator_new_call (tree, vec<tree, va_gc> **, tree *,
tree *, tree, tree *,
@@ -5542,7 +5542,7 @@ extern tree convert_generic_types_to_packs (tree, int, int);
extern tree splice_late_return_type (tree, tree);
extern bool is_auto (const_tree);
extern bool is_auto_or_concept (const_tree);
-extern tree process_template_parm (tree, location_t, tree,
+extern tree process_template_parm (tree, location_t, tree,
bool, bool);
extern tree end_template_parm_list (tree);
extern void end_template_decl (void);
@@ -6062,7 +6062,7 @@ extern tree unlowered_expr_type (const_tree);
extern tree decay_conversion (tree, tsubst_flags_t);
extern tree build_class_member_access_expr (tree, tree, tree, bool,
tsubst_flags_t);
-extern tree finish_class_member_access_expr (tree, tree, bool,
+extern tree finish_class_member_access_expr (tree, tree, bool,
tsubst_flags_t);
extern tree build_x_indirect_ref (location_t, tree,
ref_operator, tsubst_flags_t);
@@ -6089,10 +6089,10 @@ extern tree build_x_unary_op (location_t,
tsubst_flags_t);
extern tree cp_build_addr_expr (tree, tsubst_flags_t);
extern tree cp_build_addr_expr_strict (tree, tsubst_flags_t);
-extern tree cp_build_unary_op (enum tree_code, tree, int,
+extern tree cp_build_unary_op (enum tree_code, tree, int,
tsubst_flags_t);
extern tree unary_complex_lvalue (enum tree_code, tree);
-extern tree build_x_conditional_expr (location_t, tree, tree, tree,
+extern tree build_x_conditional_expr (location_t, tree, tree, tree,
tsubst_flags_t);
extern tree build_x_compound_expr_from_list (tree, expr_list_kind,
tsubst_flags_t);
@@ -6133,7 +6133,7 @@ extern void expand_ptrmemfunc_cst (tree, tree *, tree *);
extern tree type_after_usual_arithmetic_conversions (tree, tree);
extern tree common_pointer_type (tree, tree);
extern tree composite_pointer_type (tree, tree, tree, tree,
- composite_pointer_operation,
+ composite_pointer_operation,
tsubst_flags_t);
extern tree merge_types (tree, tree);
extern tree strip_array_domain (tree);
@@ -6277,11 +6277,6 @@ bool cilkplus_an_triplet_types_ok_p (location_t, tree, tree, tree,
/* In c-family/cilk.c */
extern bool cilk_valid_spawn (tree);
-// This symbol can be overridden by target config.
-#ifndef DISABLE_CXA_THROW_BAD_ARRAY_NEW_LENGTH
-#define DISABLE_CXA_THROW_BAD_ARRAY_NEW_LENGTH 0
-#endif
-
/* -- end of C++ */
#endif /* ! GCC_CP_TREE_H */
diff --git a/gcc-4.9/gcc/cp/init.c b/gcc-4.9/gcc/cp/init.c
index 7313f8477..283843ae9 100644
--- a/gcc-4.9/gcc/cp/init.c
+++ b/gcc-4.9/gcc/cp/init.c
@@ -388,7 +388,7 @@ build_value_init_noctor (tree type, tsubst_flags_t complain)
{
gcc_assert (!TYPE_HAS_COMPLEX_DFLT (type)
|| errorcount != 0);
-
+
if (TREE_CODE (type) != UNION_TYPE)
{
tree field;
@@ -1217,7 +1217,7 @@ expand_virtual_init (tree binfo, tree decl)
}
/* Compute the location of the vtpr. */
- vtbl_ptr = build_vfield_ref (cp_build_indirect_ref (decl, RO_NULL,
+ vtbl_ptr = build_vfield_ref (cp_build_indirect_ref (decl, RO_NULL,
tf_warning_or_error),
TREE_TYPE (binfo));
gcc_assert (vtbl_ptr != error_mark_node);
@@ -2586,8 +2586,10 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
}
/* Perform the overflow check. */
tree errval = TYPE_MAX_VALUE (sizetype);
- if (cxx_dialect >= cxx11 && flag_exceptions &&
- DISABLE_CXA_THROW_BAD_ARRAY_NEW_LENGTH)
+ if (cxx_dialect >= cxx11 && flag_exceptions
+ /* ANDROID - temporarily disable __cxa_throw_bad_array_new_length
+ call. */
+ && !TARGET_ANDROID)
errval = throw_bad_array_new_length ();
if (outer_nelts_check != NULL_TREE)
size = fold_build3 (COND_EXPR, sizetype, outer_nelts_check,
@@ -3218,7 +3220,7 @@ build_vec_delete_1 (tree base, tree maxindex, tree type,
"even if they are declared when the class is defined");
}
return build_builtin_delete_call (base);
- }
+ }
size_exp = size_in_bytes (type);
@@ -3379,7 +3381,7 @@ get_temp_regvar (tree type, tree init)
decl = create_temporary_var (type);
add_decl_expr (decl);
- finish_expr_stmt (cp_build_modify_expr (decl, INIT_EXPR, init,
+ finish_expr_stmt (cp_build_modify_expr (decl, INIT_EXPR, init,
tf_warning_or_error));
return decl;
@@ -3768,7 +3770,7 @@ build_vec_init (tree base, tree maxindex, tree init,
from = NULL_TREE;
if (from_array == 2)
- elt_init = cp_build_modify_expr (to, NOP_EXPR, from,
+ elt_init = cp_build_modify_expr (to, NOP_EXPR, from,
complain);
else if (type_build_ctor_call (type))
elt_init = build_aggr_init (to, from, 0, complain);
diff --git a/gcc-4.9/gcc/gcc.c b/gcc-4.9/gcc/gcc.c
index e2d921718..e187cd19c 100644
--- a/gcc-4.9/gcc/gcc.c
+++ b/gcc-4.9/gcc/gcc.c
@@ -751,11 +751,6 @@ proper position among the other output files. */
%{fvtable-verify=preinit: -lvtv -u_vtable_map_vars_start -u_vtable_map_vars_end}}"
#endif
-/* Overridable by target. */
-#ifndef PROFILE_OR_COV_LINK_SPEC
-#define PROFILE_OR_COV_LINK_SPEC ""
-#endif
-
/* -u* was put back because both BSD and SysV seem to support it. */
/* %{static:} simply prevents an error message if the target machine
doesn't handle -static. */
@@ -782,7 +777,9 @@ proper position among the other output files. */
%{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
%{fcilkplus:%:include(libcilkrts.spec)%(link_cilkrts)}\
%{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
- %(mflib) " STACK_SPLIT_SPEC PROFILE_OR_COV_LINK_SPEC "\
+ %(mflib) " STACK_SPLIT_SPEC "\
+ %{fprofile-arcs|fprofile-generate*|coverage:-lgcov " \
+ LINUX_OR_ANDROID_LD("", "-lgcc") "}" SANITIZER_SPEC " \
%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
%{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}"
#endif
@@ -5404,7 +5401,7 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
"%{foo=*:bar%*}%{foo=*:one%*two}"
matches -foo=hello then it will produce:
-
+
barhello onehellotwo
*/
if (*p == 0 || *p == '}')
@@ -6347,7 +6344,7 @@ set_func_reorder_linker_plugin_spec (void)
int i;
const char *plugin_opt_none = "group=none";
const char *plugin_opt_callgraph = "group=callgraph";
-
+
/* Find the linker plugin that does function ordering. */
func_reorder_linker_plugin_file_spec = find_a_file (&exec_prefixes,
FRPLUGINSONAME, R_OK, false);
@@ -7221,7 +7218,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
lto_gcc_spec = argv[0];
/* The function reordering linker plugin will be loaded if the option
- -freorder-functions= is present in the command-line. */
+ -freorder-functions= is present in the command-line. */
if (switch_matches (freorder_functions_,
freorder_functions_ + strlen (freorder_functions_), 1))
set_func_reorder_linker_plugin_spec ();
@@ -8490,9 +8487,9 @@ static unsigned HOST_WIDE_INT
get_random_number (void)
{
unsigned HOST_WIDE_INT ret = 0;
- int fd;
+ int fd;
- fd = open ("/dev/urandom", O_RDONLY);
+ fd = open ("/dev/urandom", O_RDONLY);
if (fd >= 0)
{
read (fd, &ret, sizeof (HOST_WIDE_INT));
@@ -8744,16 +8741,16 @@ replace_extension_spec_func (int argc, const char **argv)
return result;
}
-/* Insert backslash before spaces in ORIG (usually a file path), to
+/* Insert backslash before spaces in ORIG (usually a file path), to
avoid being broken by spec parser.
This function is needed as do_spec_1 treats white space (' ' and '\t')
as the end of an argument. But in case of -plugin /usr/gcc install/xxx.so,
the file name should be treated as a single argument rather than being
- broken into multiple. Solution is to insert '\\' before the space in a
+ broken into multiple. Solution is to insert '\\' before the space in a
file name.
-
- This function converts and only converts all occurrence of ' '
+
+ This function converts and only converts all occurrence of ' '
to '\\' + ' ' and '\t' to '\\' + '\t'. For example:
"a b" -> "a\\ b"
"a b" -> "a\\ \\ b"