[NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop preparation can be applied.
-- The rationale of such avoidance is that the 'pop25' instruction also
contains return behavior and we have no chance to further adjust stack
pointer before returning to caller, which is very important to
variadic function.
-- So we do not setup v3push/v3pop (push25/pop25) information for a
variadic function. It will use normal stack push/pop instead.
* config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
v3push/v3pop for variadic function.
* config/nds32/nds32.md (prologue, epilogue): Likewise.
[NDS32] Consider varargs situation when creating stack operation assembly code.
-- In fact, we only need to take care of 'push.s' situation,
because we have to push all the nameless arguments into stack.
-- We do not have to use 'pop.s' to restore them back to registers,
because we can just adjust stack pointer to set frame location.
This operation should be done in epilogue expanding.
-- Because 'pop25' instruction also performs return operation, we will
not use v3push/v3pop on isr and vararg functions.
Therefore, their instruction length should be 4 bytes.
* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
Check rtx for varargs implementation.
(nds32_output_stack_pop): Likewise.
* config/nds32/nds32-protos.h: Have a rtx argument for
nds32_output_stack_push and nds32_output_stack_pop.
* config/nds32/nds32.md: Likewise.
[NDS32] Add a function to indentify if FUNC is an interrupt service routine.
* config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
to check if FUNC is an interrupt service routine.
* config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
[NDS32] Refine the implementation and consider CFA restore information for stack v3push/v3pop.
* config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
(nds32_emit_stack_v3push): ... this.
(nds32_gen_stack_v3pop): Rename to ...
(nds32_emit_stack_v3pop): ... this and consider CFA restore
information.
[NDS32] Refine the implementation and consider CFA restore information for stack push/pop multiple.
* config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
(nds32_emit_stack_push_multiple): ... this.
(nds32_gen_stack_pop_multiple): Rename to ...
(nds32_emit_stack_pop_multiple): ... this and consider CFA restore
information.
[ARM][1/2] Implement lceil, lfloor, lround optabs with new ARMv8-A instructions.
PR target/62275
* config/arm/iterators.md (FIXUORS): New code iterator.
(VCVT): New int iterator.
(su_optab): New code attribute.
(su): Likewise.
* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
[AArch64] Use CC_Z and CC_NZ with csinc and similar instructions.
* config/aarch64/predicates.md (aarch64_comparison_operation):
New special predicate.
* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
aarch64_comparison_operation instead of matching an operator.
Update operand numbers.
(csinc3<mode>_insn): Likewise.
(*csinv3<mode>_insn): Likewise.
(*csneg3<mode>_insn): Likewise.
(ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
* config/aarch64/aarch64.c (aarch64_get_condition_code):
Return -1 instead of aborting on invalid condition codes.
(aarch64_print_operand): Update aarch64_get_condition_code callsites
to assert that the returned condition code is valid.
* config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
Paolo Carlini [Tue, 2 Sep 2014 15:38:38 +0000 (15:38 +0000)]
DR 1453
/cp
2014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
DR 1453
* class.c (check_field_decls): A class of literal type cannot have
volatile non-static data members and base classes.
(explain_non_literal_class): Update.
/testsuite
2014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
DR 1453
* g++.dg/cpp0x/constexpr-volatile.C: New.
* g++.dg/ext/is_literal_type2.C: Likewise.
gcc/cp/
* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
simplified.
* parser.c (cp_parser_cilk_for): New function.
(cp_parser_cilk_grainsize): Likewise.
(cp_parser_statement): Added RID_CILK_FOR case.
(cp_parser_omp_for_cond): Added CILK_FOR check.
(cp_parser_omp_for_loop_init): Change function argument to accept
tree_code instead just a bool flag; change the check to use that
tree_code; check for initialization declaration in case of Cilk_for.
(cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
changed call to cp_parser_omp_for_loop_init according new arguments'
list.
(cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
* pt.c (tsubst_expr): Added CILK_FOR case.
* semantics.c: Include convert.h.
(finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
case; added OMP_CLAUSE__CILK_FOR_COUNT_.
(handle_omp_for_class_iterator): New argument lastp and its usage;
added NE_EXPR case.
(finish_omp_for): Changed call to handle_omp_for_class_iterator
according new arguments' list; in case of Cilk_for save very first
decl and create empty stmt_list block; use block to build correct
statement tree.
gcc/testsuite/
* c-c++-common/cilk-plus/CK/cilk-fors.c: New test.
* c-c++-common/cilk-plus/CK/cilk-for-2.c: New test.
* c-c++-common/cilk-plus/CK/cilk-for-3.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_errors.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_grain.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: New test.
* c-c++-common/cilk-plus/CK/nested_cilk_for.c: New test.
* g++.dg/cilk-plus/CK/cf3.cc: New test.
* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: New test.
* g++.dg/cilk-plus/CK/for1.cc: New test.
* g++.dg/cilk-plus/CK/stl_iter.cc: New test.
* g++.dg/cilk-plus/CK/stl_rev_iter.cc: New test.
* g++.dg/cilk-plus/CK/stl_test.cc: New test.
Co-Authored-By: Balaji V. Iyer <balaji.v.iyer@intel.com> Co-Authored-By: Igor Zamyatin <igor.zamyatin@intel.com>
From-SVN: r214818
* config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
*mulsi3_internal2, and two splitters): Delete.
(muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
Delete.
(mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
To use gcc-{ar,ranlib} for boot strap we need to add a -B option
to the tool. Since ar has weird and unusual argument conventions
implement the code by hand instead of using any libraries.
gcc/:
2014-09-01 Andi Kleen <ak@linux.intel.com>
* file-find.c (add_prefix_begin): Add.
(do_add_prefix): Rename from add_prefix with first argument.
(add_prefix): Add new wrapper.
* file-find.h (add_prefix_begin): Add.
* gcc-ar.c (main): Support -B option.
vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on $WIND_BASE instead of designating a harcoded arbitrary home dir.
* config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
$WIND_BASE instead of designating a harcoded arbitrary home dir.
(VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
Jakub Jelinek [Mon, 1 Sep 2014 11:15:41 +0000 (13:15 +0200)]
re PR target/62025 (Miscompilation of openssl sha512.c)
PR target/62025
* sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
(find_inc): Revert 2014-08-13 change.
Fix build error with Debian's 4.8.1-2 due to wrong declaration
This patch fixes a non-matching declaration, which lets G++ 4.8.1 (as of
Debian's g++ package) barf:
g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace -o mcore.o -MT mcore.o -MMD -MP -MF ./.deps/mcore.TPo /home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c: In function ‘const char* output_inline_const(machine_mode, rtx_def**)’:
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1216:82: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tnot\t%s\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1216:82: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1219:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\taddi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1219:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1222:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tsubi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1222:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1226:88: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\trsubi\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1226:88: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1229:89: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tbseti\t%s,%%P2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1229:89: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1232:89: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tbclri\t%s,%%Q2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1232:89: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1235:88: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\trotli\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1235:88: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1238:87: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tlsli\t%s,%%2\t// %ld 0x%lx", load_op, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1238:87: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1241:94: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tixh\t%s,%s\t// %ld 0x%lx", load_op, dst_fmt, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1241:94: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1244:94: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘long long int’ [-Wformat=]
sprintf (buf, "%s\n\tixw\t%s,%s\t// %ld 0x%lx", load_op, dst_fmt, dst_fmt, value, value);
^
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:1244:94: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘long long int’ [-Wformat=]
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c: At global scope:
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:100:19: warning: ‘int try_constant_tricks(long int, long long int*, long long int*)’ used but never defined [enabled by default]
static int try_constant_tricks (long, HOST_WIDE_INT *, HOST_WIDE_INT *);
^
[...]
g++ -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-array-notation.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/array-notation-common.o c-family/cilk.o c-family/c-ubsan.o default-c.o \
cc1-checksum.o libbackend.a main.o tree-browser.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -lmpc -lmpfr -lgmp -rdynamic -ldl -L../zlib -lz
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline(long long)':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_trick_uses_not(long long)':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:761: undefined reference to `try_constant_tricks(long, long long*, long long*)'
libbackend.a(mcore.o): In function `mcore_const_ok_for_inline':
/home/vaxbuild/repos/gcc/gcc/config/mcore/mcore.c:751: undefined reference to `try_constant_tricks(long, long long*, long long*)'
collect2: error: ld returned 1 exit status
make[1]: *** [cc1] Error 1
make[1]: Leaving directory `/home/vaxbuild/build/mcore-elf/build-gcc/gcc'
make: *** [all-gcc] Error 2
This patch fixes only the wrong declaration of try_constant_tricks().
Tobias Burnus [Sat, 30 Aug 2014 18:47:40 +0000 (20:47 +0200)]
trans.h (gfc_caf_get_image_index, [...]): New prototypes.
2014-08-30 Tobias Burnus <burnus@net-b.de>
* trans.h (gfc_caf_get_image_index,
gfc_get_caf_token_offset): New prototypes.
* trans-expr.c (gfc_caf_get_image_index): Moved from
trans-intrinsic.c and renamed.
(gfc_get_caf_token_offset) Ditto; support offset = NULL
with early return.
* trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
Moved to trans-expr.
(gfc_conv_intrinsic_caf_get, conv_caf_send,
conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
conv_intrinsic_atomic_cas): Update callers.
David Malcolm [Sat, 30 Aug 2014 14:34:02 +0000 (14:34 +0000)]
re PR bootstrap/62304 (ICE in follow_jumps, find_dead_or_set_registers)
PR bootstrap/62304
* gcc/reorg.c (skip_consecutive_labels): Convert return type and
param back from rtx_insn * to rtx. Rename param from "label" to
"label_or_return", reintroducing "label" as an rtx_insn * after
we've ensured it's not a RETURN.
(first_active_target_insn): Likewise for return type and param;
add a checked cast to rtx_insn * once we've ensured "insn" is not
a RETURN.
(steal_delay_list_from_target): Convert param "pnew_thread" back
from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
with JUMP_LABEL.
(own_thread_p): Convert param "thread" back from an rtx_insn * to
an rtx. Introduce local rtx_insn * "thread_insn" with a checked
cast once we've established we're not dealing with a RETURN,
renaming subsequent uses of "thread" to "thread_insn".
(fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
to JUMP_LABEL.
(follow_jumps): Convert return type and param "label" from
rtx_insn * back to rtx. Move initialization of "value" to after
the handling for ANY_RETURN_P, adding a checked cast there to
rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
rename to "this_label_or_return", reintroducing "this_label" as
an rtx_insn * once we've handled the case where it could be an
ANY_RETURN_P.
(fill_slots_from_thread): Rename param "thread" to
"thread_or_return", converting from an rtx_insn * back to an rtx.
Reintroduce name "thread" as an rtx_insn * local with a checked
cast once we've handled the case of it being an ANY_RETURN_P.
Convert local "new_thread" from an rtx_insn * back to an rtx.
Add a checked cast when assigning to "trial" from "new_thread".
Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
checked cast to rtx_insn * from "new_thread" when invoking
get_label_before.
(fill_eager_delay_slots): Convert locals "target_label",
"insn_at_target" from rtx_insn * back to rtx.
Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
(relax_delay_slots): Convert locals "trial", "target_label" from
rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
invoking update_block.
(dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
* resource.h (mark_target_live_regs): Undo erroneous conversion
of second param of r214693, converting it back from rtx_insn * to
rtx, since it could be a RETURN.
* resource.c (find_dead_or_set_registers): Similarly, convert
param "jump_target" back from an rtx_insn ** to an rtx *, as we
could be writing back a RETURN. Rename local rtx_insn * "next" to
"next_insn", and introduce "lab_or_return" as a local rtx,
handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
(mark_target_live_regs): Undo erroneous conversion
of second param of r214693, converting it back from rtx_insn * to
rtx, since it could be a RETURN. Rename it from "target" to
"target_maybe_return", reintroducing the name "target" as a local
rtx_insn * with a checked cast, after we've handled the case of
ANY_RETURN_P.
DJ Delorie [Fri, 29 Aug 2014 23:16:29 +0000 (19:16 -0400)]
target-supports.exp (check_effective_target_size32plus): Increase size to avoid false positives on 24-bit address spaces.
* lib/target-supports.exp (check_effective_target_size32plus):
Increase size to avoid false positives on 24-bit address spaces.
* gcc.c-torture/compile/limits-stringlit.c: Skip if msp430.
* gcc.dg/lto/pr54709_1.c: Fix memcpy prototype.
* gcc.dg/torture/pta-ptrarith-3.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/torture/pr36373-10.c: Use __SIZE_TYPE__ if present.
* gcc.dg/torture/pr57864.c: Use __SIZE_TYPE__.
* gcc.dg/torture/pr26763-2.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/tree-ssa/isolate-3.c: Use __SIZE_TYPE__ instead of "long unsigned int".
* gcc.dg/pr52549.c: Use __SIZE_TYPE__ if present.
* c.opt (Wbuiltin-macro-redefined,Wdeprecated,Wendif-labels,
Winvalid-pch,Wliteral-suffix,Wmissing-include-dirs,Wtrigraphs,
Wundef): Use CPP, Var and Init.
* c-opts.c (c_common_handle_option): Do not handle the above flags here.
macro.c (warn_of_redefinition): Suppress warnings for builtins that lack the NODE_WARN flag...
libcpp/ChangeLog:
2014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
* macro.c (warn_of_redefinition): Suppress warnings for builtins
that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
(_cpp_create_definition): Use Wbuiltin-macro-redefined for
builtins that lack the NODE_WARN flag.
* directives.c (do_undef): Likewise.
* init.c (cpp_init_special_builtins): Do not change flags
depending on Wbuiltin-macro-redefined.
gcc/c-family/ChangeLog:
2014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
* c.opt (Wbuiltin-macro-redefined): Use CPP, Var and Init.
* c-opts.c (c_common_handle_option): Do not handle here.
David Malcolm [Fri, 29 Aug 2014 03:12:01 +0000 (03:12 +0000)]
re PR bootstrap/62300 (internal compiler error: in as_a, at is-a.h:192)
PR bootstrap/62300
* function.c (assign_parm_setup_reg): Remove erroneous checked
cast to rtx_insn * on result of gen_extend_insn in favor of
introducing a new local rtx "pat".
David Malcolm [Fri, 29 Aug 2014 00:12:44 +0000 (00:12 +0000)]
dfa_clear_single_insn_cache takes an rtx_insn
gcc/
2014-08-28 David Malcolm <dmalcolm@redhat.com>
* genattr.c (main): When writing out insn-attr.h, strengthen param
of dfa_clear_single_insn_cache from rtx to rtx_insn *.
* genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
writing out the definition of dfa_clear_single_insn_cache to the
generated insn-automata.c
* reorg.c (delete_scheduled_jump): Strengthen param "insn" from
rtx to rtx_insn *.
(steal_delay_list_from_target): Use methods of "seq".
(try_merge_delay_insns): Use methods of "merged_insns".
(update_block): Strengthen param "insn" from rtx to rtx_insn *.
(reorg_redirect_jump): Likewise for param "jump".
David Malcolm [Fri, 29 Aug 2014 00:07:51 +0000 (00:07 +0000)]
Make insn_addresses_new require an rtx_insn
gcc/
2014-08-28 David Malcolm <dmalcolm@redhat.com>
* insn-addr.h (insn_addresses_new): Strengthen param "insn" from
rtx to rtx_insn *.
* config/s390/s390.c (s390_split_branches): Eliminate top-level
local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
"set_insn".
(s390_mainpool_finish): In three places, split out a local rtx
"insn" into a local rtx - "set" or "pat" - and a rtx_insn *
"insn". Strengthen local "pool_end" from rtx to rtx_code_label *
and split another local rtx "insn" out into rtx "pat" and
rtx_insn * "insn".
* config/sh/sh.c (output_branchy_insn): Rather than working
directly on operands[9], introduce local rtx_code_label *
variables named "lab" in two places, working on them, and then
assigning them to operands[9], so that the intervening operations
are known by the type system to be on insns.