Tim Shen [Thu, 30 Jul 2015 10:35:45 +0000 (10:35 +0000)]
regex_automaton.h (_State_base, _State<>): Remove _TraitsT dependency from _State<>...
* include/bits/regex_automaton.h (_State_base, _State<>):
Remove _TraitsT dependency from _State<>; Make matcher member
into the union to reduce struct size.
* include/bits/regex_automaton.tcc (_State_base<>::_M_print,
_State_base<>::_M_dot, _StateSeq<>::_M_clone):
Adjust to fit the interface. Factor out common parts in
_M_clone as _State<>::_M_has_alt.
* include/bits/regex_executor.h (_Executer<>::_M_lookahead):
Only pass state id instead of the whole state.
* include/bits/regex_executor.tcc (_Executer<>::_M_dfs,
_Executer<>::_M_lookahead): Adjust to fit the interface.
* include/std/regex: Include <ext/aligned_buffer.h>
Paolo Carlini [Thu, 30 Jul 2015 10:24:46 +0000 (10:24 +0000)]
class.c (check_for_override): Use DECL_SOURCE_LOCATION and "%qD" in warning_at instead of "%q+D" in warning.
2015-07-30 Paolo Carlini <paolo.carlini@oracle.com>
* class.c (check_for_override): Use DECL_SOURCE_LOCATION and "%qD"
in warning_at instead of "%q+D" in warning.
(warn_hidden): Likewise but use location_of.
(finish_struct_anon_r): Likewise use DECL_SOURCE_LOCATION in permerror.
(check_bitfield_decl, check_field_decls): Likewise in warning_at.
(check_field_decls): Likewise for permerror.
(explain_non_literal_class): Likewise for inform.
(check_bases_and_members, layout_class_type): Likewise for warning_at.
(note_name_declared_in_class): Use location_of in permerror.
* name-lookup.c (diagnose_name_conflict): Use location_of in inform.
(pushdecl_maybe_friend_1): Use DECL_SOURCE_LOCATION in pedwarn,
inform, and warning_at.
(check_for_out_of_scope_variable): Likewise for warning_at and
permerror.
Richard Biener [Thu, 30 Jul 2015 07:56:23 +0000 (07:56 +0000)]
genmatch.c (verbose): New global.
2015-07-30 Richard Biener <rguenther@suse.de>
* genmatch.c (verbose): New global.
(warning_at): Add overload with source_location.
(capture_info::capture_info): Add bool whether generating gimple
or generic. Add gimple member.
(capture_info::cinfo): Add capture member.
(capture_info::walk_match): Record capture. Warn on
non-captured leafs.
(capture_info::walk_c_expr): Add more fragments captures cannot
escape through. Warn on escaped captures.
(dt_simplify::gen_1): Warn on operands we force to have no
side-effects.
(main): Initialize verbose.
* match.pd: Add integer_nonzerop and HONOR_NANS predicates.
Ian Lance Taylor [Wed, 29 Jul 2015 21:42:30 +0000 (21:42 +0000)]
syscall: Fix to libgo/mksysinfo.sh
In a recent change to mksysinfo.sh, a space was missing on
some lines which caused the libgo build to hang on some
systems. This corrects that problem.
H.J. Lu [Wed, 29 Jul 2015 21:06:23 +0000 (21:06 +0000)]
Define DBX_REGISTER_NUMBER for IA MCU
Since IA MCU uses the same debug register map as Linux/x86, we copy
DBX_REGISTER_NUMBER together with TARGET_ASM_FILE_START_FILE_DIRECTIVE
and ASM_COMMENT_START from i386/gnu-user.h to i386/iamcu.h.
range_access.h: Change class to typename in every template.
2015-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
* include/bits/range_access.h: Change class to typename in every
template.
(size, empty, data): New functions from N4280.
* testsuite/24_iterators/container_access.cc: New.
Richard Biener [Wed, 29 Jul 2015 07:48:10 +0000 (07:48 +0000)]
gimple-fold.c (has_use_on_stmt): New function.
2015-07-29 Richard Biener <rguenther@suse.de>
* gimple-fold.c (has_use_on_stmt): New function.
(replace_stmt_with_simplification): Use it to allow
abnormals originally referenced in the stmt.
(fold_stmt_1): Canonicalize operand order.
Tim Shen [Wed, 29 Jul 2015 03:45:35 +0000 (03:45 +0000)]
re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
PR libstdc++/67015
* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
_BracketMatcher<>::_M_add_collating_element): Change signature
to make checking the and of bracket expression easier.
* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
Treat '-' as a valid literal if it's at the end of bracket expression.
* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
New testcases.
Bill Schmidt [Wed, 29 Jul 2015 03:33:10 +0000 (03:33 +0000)]
re PR sanitizer/63927 (AddressSanitizer painfully slow on ppc64)
2015-07-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR sanitizer/63927
* sanitizer_common/sanitizer_stacktrace.cc
(BufferedStackTrace::FastUnwindStack): Fix code for PowerPC to
find the link register at an offset of 16 from the base of the
caller's stack frame.
target-insns.def (atomic_test_and_set): New targetm instruction pattern.
gcc/
* target-insns.def (atomic_test_and_set): New targetm instruction
pattern.
* optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
HAVE_*/gen_* interface.
[AArch64] Properly handle simple arith+extend ops in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
Handle simple SIGN_EXTEND or ZERO_EXTEND.
(aarch64_rtx_costs): Properly strip extend or extract before
passing down to rtx costs again.
Nick Clifton [Tue, 28 Jul 2015 08:09:09 +0000 (08:09 +0000)]
rl78.c (rl78_addsi3_internal): New function.
* config/rl78/rl78.c (rl78_addsi3_internal): New function.
Optimizes the case where -mes0 is active and a constant symbolic
address is used.
* config/rl78/rl78-protos.h: Prototype the new function.
* config/rl78/rl78.md (addsi3_internal_real): Call new function.
Tom de Vries [Tue, 28 Jul 2015 07:54:04 +0000 (07:54 +0000)]
Handle double reduction in parloops
2015-07-28 Tom de Vries <tom@codesourcery.com>
* tree-parloops.c (reduc_stmt_res): New function.
(initialize_reductions, add_field_for_reduction)
(create_phi_for_local_result, create_loads_for_reductions)
(create_stores_for_reduction, build_new_reduction): Handle case that
reduc_stmt is a phi.
(gather_scalar_reductions): Allow double_reduc reductions.
* gcc.dg/autopar/uns-outer-4.c: Remove xfail on scan for parallelizing
outer loop.
re PR tree-optimization/66828 (gcc/tree-ssa-math-opts.c:2182:38: runtime error: left shift of 72057594037927936 by 8 places cannot be represented in type 'long int')
2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR tree-optimization/66828
* tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
from int64_t to uint64_t.
Honour DriverOnly for enum values in error messages
/gcc/ChangeLog
* opts-common.c (read_cmdline_option): List DriverOnly enum values as
valid only in the error message of the driver, not in the messages of
the language compilers.
Patrick Palka [Sun, 26 Jul 2015 17:04:31 +0000 (17:04 +0000)]
Fix PR c++/18969 (invalid return statement diagnosed too late)
gcc/cp/ChangeLog:
PR c++/18969
* typeck.c (check_return_expr): Also do the basic return-value
validity checking if processing_template_decl and yet types are
not dependent. Remove obsolete code.
gcc/testsuite/ChangeLog:
PR c++/18969
* g++.dg/template/pr18969.C: New test.
* g++.dg/template/pr18969-2.C: New test.
* g++.old-deja/g++.jason/overload.C: Remove return value in
template function returning void.
re PR target/67004 (valgrind error in recog_memoized & shorten_branches)
PR target/67004
* config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
Sebastian Pop [Sat, 25 Jul 2015 09:22:29 +0000 (09:22 +0000)]
dump reasons why graphite failed to detect a scop
When trying to analyze why Graphite does not handle a loop nest, it is easy to
look in the dumps of -fdump-tree-graphite-all to guess what has to be changed to
catch the loop. This patch makes the dumps a bit more verbose and useful.
* graphite-scop-detection.c: Include gimple-pretty-print.h.
(stmt_simple_for_scop_p): Print when a stmt is not handled in Graphite.
(scopdet_basic_block_info): Print when a loop or bb cannot be
represented in Graphite.
Jeff Law [Sat, 25 Jul 2015 05:45:42 +0000 (23:45 -0600)]
revert: re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG)
Revert:
PR lto/66752
* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
unable to find X NE 0 in the tables, return X as the simplified
condition.
(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
to VISISTED_BBS. */
* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
after removing the control flow statement and unnecessary edges.
testsuite/
PR lto/66752
* gcc.dg/tree-ssa/pr66752-2.c: New test.
* gcc.dg/torture/pr66752-1.c: New test
* g++.dg/torture/pr66752-2.C: New test.
Ian Lance Taylor [Sat, 25 Jul 2015 00:01:04 +0000 (00:01 +0000)]
syscall: Add ioctl consts from if_tun.h
During the gccgo build define constants from
some header files are processed by mksysinfo.sh and
added to syscall.go. In some cases the constants
are based on macros which are not processed
correctly by mksysinfo.sh. This adds the support
to generate the correct values for the TUN* constants
from linux/if_tun.h.
Tom de Vries [Fri, 24 Jul 2015 20:55:22 +0000 (20:55 +0000)]
Don't allow unsafe reductions in graphite
2015-07-24 Tom de Vries <tom@codesourcery.com>
* graphite-sese-to-poly.c (is_reduction_operation_p): Limit
flag_associative_math to FLOAT_TYPE_P. Honour
TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
* gcc.dg/graphite/block-1.c: Xfail scan.
* gcc.dg/graphite/interchange-12.c: Same.
* gcc.dg/graphite/interchange-14.c: Same.
* gcc.dg/graphite/interchange-15.c: Same.
* gcc.dg/graphite/interchange-9.c: Same.
* gcc.dg/graphite/interchange-mvt.c: Same.
* gcc.dg/graphite/uns-block-1.c: New test.
* gcc.dg/graphite/uns-interchange-12.c: New test.
* gcc.dg/graphite/uns-interchange-14.c: New test.
* gcc.dg/graphite/uns-interchange-15.c: New test.
* gcc.dg/graphite/uns-interchange-9.c: New test.
* gcc.dg/graphite/uns-interchange-mvt.c: New test.