aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-07-02add bugzilla linksChristian Bruel2-0/+4
From-SVN: r212232
2014-07-02add testChristian Bruel1-0/+17
From-SVN: r212231
2014-07-02Support mode toggle.Christian Bruel13-164/+281
* mode-switching.c (struct bb_info): Add mode_out, mode_in caches. (make_preds_opaque): Delete. (clear_mode_bit, mode_bit_p, set_mode_bit): New macros. (commit_mode_sets): New function. (optimize_mode_switching): Handle current_mode to mode_switching_emit. Process all modes at once. * basic-block.h (pre_edge_lcm_avs): Declare. * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm. Call clear_aux_for_edges. Fix comments. (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs. (pre_edge_rev_lcm): Idem. * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode parameter. * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem. * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): Idem. * config/i386/i386.c (x96_emit_mode_set): Idem. * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle. * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE. (fpscr_toggle) Disallow from delay slot. * target.def (emit_mode_set): Add prev_mode parameter. * doc/tm.texi: Regenerate. From-SVN: r212230
2014-07-02decl.c (variable_decl): Reject old style initialization for derived type ↵Jakub Jelinek4-0/+26
components. * decl.c (variable_decl): Reject old style initialization for derived type components. * gfortran.dg/oldstyle_5.f: New test. Co-Authored-By: Fritz Reese <Reese-Fritz@zai.com> From-SVN: r212227
2014-07-02* config/fpu-glibc.h: Fix comment about FE_DENORMAL.Francois-Xavier Coudert2-1/+5
From-SVN: r212226
2014-07-02[AArch64] Removed unused variable i in aarch64_expand_vec_permKyrylo Tkachov2-1/+6
* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused variable i. From-SVN: r212225
2014-07-02configure.host (ieee_flags): Add -mieee for alpha*.Uros Bizjak7-4/+26
libgfortran/ChangeLog: * configure.host (ieee_flags): Add -mieee for alpha*. * config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO. * config/fpu-aix.h (support_fpu_rounding_mode): Ditto. testsuite/ChangeLog: * gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0. * gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add. From-SVN: r212224
2014-07-02pt.c (convert_template_argument): Use inform instead of error in three places.Paolo Carlini7-15/+33
/cp 2014-07-02 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (convert_template_argument): Use inform instead of error in three places. /testsuite 2014-07-02 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/variadic-ex10.C: Adjust for inform instead of error. * g++.dg/cpp0x/variadic-ex14.C: Likewise. * g++.dg/parse/error11.C: Likewise. * g++.old-deja/g++.brendan/template17.C: Likewise. From-SVN: r212223
2014-07-02ipa-utils.h (method_class_type, [...]): Constify.Jan Hubicka4-32/+80
* ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo, vtable_pointer_value_to_vtable): Constify. (contains_polymorphic_type_p): Declare. * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo, vtable_pointer_value_to_vtable): Constify. (contains_polymorphic_type_p): New predicate. * ipa-prop.c (ipa_set_jf_known_type): Allow types containing polymorphic types. (ipa_set_ancestor_jf): Likewise. (detect_type_change): Return false in easy cases. (compute_complex_assign_jump_func): Require type to contain polymorphic type. (compute_known_type_jump_func): Likewise. From-SVN: r212222
2014-07-02get_array.f90: Add missing SYNC ALL.Tobias Burnus4-0/+33
2014-07-02 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray/get_array.f90: Add missing SYNC ALL. * gfortran.dg/coarray/send_array.f90: Ditto. * gfortran.dg/coarray/sendget_array.f90: Ditto. From-SVN: r212220
2014-07-02tree.c (decls_same_for_odr, [...]): Remove.Jan Hubicka4-204/+220
* tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr): Remove. (type_in_anonymous_namespace_p): Constify argument. * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify. * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field. (main_odr_variant): New function. (hash_type_name): Make static; update assert; do not ICE on non-records. (types_same_for_odr): Bring here from tree.c; simplify and remove old structural comparing code that doesn't work for templates. (odr_hasher::equal): Update assert. (add_type_duplicate): Return true when bases should be computed; replace incomplete loader by complete; do not output duplicated warnings; do not ICE on non-records; set odr_violated flag. (get_odr_type): Be ready to replace incomplete type by complete one; work on ODR variants instead of main variants; reorder item in array so bases have still smaller indexes. (dump_type_inheritance_graph): Be ready for holdes in odr_types array. (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL. From-SVN: r212218
2014-07-02Daily bump.GCC Administrator1-1/+1
From-SVN: r212217
2014-07-01runtime: introduce build targets for running benchmarksIan Lance Taylor3-14/+44
This introduces the "bench" build target, which can be used to run all benchmarks. It is also possible to run subsets of benchmarks with the "package/check" build targets by setting GOBENCH to a matching regex. From-SVN: r212212
2014-07-01This patch fixes a couple of ICEs when using -gsplit-dwarf.Cary Coutant2-14/+30
When compiling a small-enough compilation unit that has no address table entries, but complex enough that -freorder-blocks-and-partition produces location lists, dwarf2out_finish does not call index_location_lists, but optimize_location_lists will later assume that the addr_index_table has been indexed. Google ref: b/15417905 When resolve_addr_in_expr replaces a CONST_STRING rtx, it directly updates the pointer to the old expression with the new one. In the case of a DW_OP_GNU_addr_index or DW_OP_GNU_const_index, that pointer may be in an address table entry, which is keyed by the rtx. Instead of directly replacing the pointer, we need to remove the old address table entry (i.e., decrement its reference count), and add a new one. Google ref: b/15957101 gcc/ * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table lookup. (resolve_addr_in_expr): When replacing the rtx in a location list entry, get a new address table entry. (dwarf2out_finish): Call index_location_lists even if there are no addr_index_table entries yet. From-SVN: r212211
2014-07-01gcc/testsuite/James Greenhalgh2-1/+13
* gcc.target/aarch64/aapcs64/aapcs64.exp: (additional_flags_for_func_ret): New variable based on $additional_flags with -fno-use-caller-save. (func-ret-*.c): Use the new variable. Co-Authored-By: Yufeng Zhang <yufeng.zhang@arm.com> From-SVN: r212206
2014-07-01re PR c++/59637 ([c++11] ICE with decltype and destructor call in template)Paolo Carlini2-0/+12
2014-07-01 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59637 * g++.dg/cpp0x/decltype60.C: New. From-SVN: r212205
2014-07-01revert r212197 for apparently not actually being obviousTrevor Saunders2-1/+6
From-SVN: r212200
2014-07-01Revert "PR preprocessor/60723 - missing system-ness marks for macro tokens"Dodji Seketeli7-124/+24
This reverts commit 747e04f26ac3fb775bfc9af61e9170b9461b6cfc. From-SVN: r212199
2014-07-01Correct ChangeLog entries from r212041.Teresa Johnson3-11/+14
From-SVN: r212198
2014-07-01fix -Wunused-parameter warning in winnt.cTrevor Saunders2-1/+6
gcc/ * config/i386/winnt.c (i386_pe_section_type_flags): Removed name of unused argument. From-SVN: r212197
2014-07-01[AArch64] Implement some vca*_f[32,64] intrinsics.Kyrylo Tkachov11-0/+366
* config/aarch64/arm_neon.h (vcage_f64): New intrinsic. (vcagt_f64): Likewise. (vcale_f64): Likewise. (vcaled_f64): Likewise. (vcales_f32): Likewise. (vcalt_f64): Likewise. (vcaltd_f64): Likewise. (vcalts_f32): Likewise. * gcc.target/aarch64/simd/vcage_f64.c: New test. * gcc.target/aarch64/simd/vcagt_f64.c: Likewise. * gcc.target/aarch64/simd/vcale_f64.c: Likewise. * gcc.target/aarch64/simd/vcaled_f64.c: Likewise. * gcc.target/aarch64/simd/vcales_f32.c: Likewise. * gcc.target/aarch64/simd/vcalt_f64.c: Likewise. * gcc.target/aarch64/simd/vcaltd_f64.c: Likewise. * gcc.target/aarch64/simd/vcalts_f32.c: Likewise. From-SVN: r212196
2014-07-01pr59867.C: Fix target selector.Paolo Carlini2-2/+5
2014-07-01 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1y/pr59867.C: Fix target selector. From-SVN: r212195
2014-07-01PR preprocessor/60723 - missing system-ness marks for macro tokensDodji Seketeli7-24/+124
When a system macro is expanded in a non-system file during out-of-line preprocessing, it can happen that the preprocessor forgets to emit line markers to express the system-ness status of tokens that come after the expansion of the macro. That can lead to situations where the entire non-system file can be considered as being a system file and thus have its warnings be discarded during the compilation of the resulting preprocessed file. My understanding is that this is due to the preprocessor not systematically detecting (and reporting) the change in system-ness of tokens. And this is what this patch does. Each time the system-ness of a given token is different from the previous token that was emitted by the preprocessor, it emits a line marker for the sole purpose of marking the new system-ness of the subsequent tokens to come. Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk. gcc/c-family/ChangeLog: * c-ppoutput.c (struct print::prev_was_system_token): New data member. (init_pp_output): Initialize it. (maybe_print_line_1, maybe_print_line, print_line_1, print_line) (do_line_change): Return a flag saying if a line marker was emitted or not. (scan_translation_unit): Detect if the system-ness of the token we are about to emit is different from the one of the previously emitted token. If so, emit a line marker. Avoid emitting useless adjacent line markers. (scan_translation_unit_directives_only): Adjust. gcc/testsuite/ChangeLog: * gcc.dg/cpp/syshdr{4,5}.{c,h}: New test files. Signed-off-by: Dodji Seketeli <dodji@redhat.com> From-SVN: r212194
2014-07-01invoke.texi: Document -Wint-conversion.Marek Polacek8-3/+56
* doc/invoke.texi: Document -Wint-conversion. c-family/ * c.opt (Wint-conversion): New option. c/ * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion instead of 0 to WARN_FOR_ASSIGNMENT. testsuite/ * gcc.dg/Wint-conversion.c: New test. From-SVN: r212193
2014-07-01re PR c/58286 (Need option to make incompatible pointer type warnings into ↵Marek Polacek8-5/+58
compiler errors) PR c/58286 * doc/invoke.texi: Document -Wincompatible-pointer-types. c-family/ * c.opt (Wincompatible-pointer-types): New option. c/ * c-typeck.c (convert_for_assignment): Pass OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT. testsuite/ * gcc.dg/Wincompatible-pointer-types.c: New test. From-SVN: r212192
2014-07-01IPA REF alias refactoringMartin Liska12-89/+189
* cgraph.h (iterate_direct_aliases): New function. (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node. * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of FOR_EACH_ALIAS added. (cgraph_for_node_and_aliases): Likewise. * cgraphunit.c (assemble_thunks_and_aliases): Likewise. * ipa-inline.c (reset_edge_caches): Likewise. (update_caller_keys): Likewise. * trans-mem.c (ipa_tm_execute): Likewise. *varpool.c (varpool_analyze_node): Likewise. (varpool_for_node_and_aliases): Likewise. * ipa-ref.h (first_alias): New function. (last_alias): Likewise. (has_aliases_p): Likewise. * ipa-ref.c (ipa_ref::remove_reference): Removal function is sensitive to IPA_REF_ALIASes. * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type are put at the beginning of the list. (symtab_node::iterate_direct_aliases): New function. * lto-partition.c (add_symbol_to_partition_1): Usage of FOR_EACH_ALIAS added. From-SVN: r212191
2014-07-01scanasm.exp (dg-function-on-line): Add MicroBlaze specific pattern.David Holsgrove2-0/+8
2014-06-30 David Holsgrove <david.holsgrove@xilinx.com> * gcc/testsuite/lib/scanasm.exp (dg-function-on-line): Add MicroBlaze specific pattern. --This line, and those below, M ChangeLog M lib/scanasm.exp From-SVN: r212189
2014-07-01* ChangeLog: Correct the PR id from 61061 to 61601.Tim Shen1-1/+1
From-SVN: r212187
2014-07-01re PR c++/58781 (Unicode strings broken in a strange way)Edward Smith-Rowland6-9/+108
cp/ 2014-06-28 Edward Smith-Rowland <3dw4rd@verizon.net> PR c++/58781 PR c++/60249 PR c++/59867 * parser.c (cp_parser_userdef_string_literal()): Take a tree not a cp_token*. (cp_parser_string_literal(): Don't hack the token stream! testsuite/ 2014-06-28 Edward Smith-Rowland <3dw4rd@verizon.net> PR c++/58781 PR c++/60249 PR c++/59867 * testsuite/g++.dg/cpp0x/pr58781.C: New. * testsuite/g++.dg/cpp0x/pr60249.C: New. * testsuite/g++.dg/cpp1y/pr59867.C: New. From-SVN: r212186
2014-07-01re PR testsuite/61061 (FAIL: g++.dg/inherit/covariant7.C)Tim Shen5-8/+79
PR libstdc++/61061 PR libstdc++/61582 * include/bits/regex_automaton.h (_NFA<>::_M_insert_state): Add a NFA state limit. If it's exceeded, regex_constants::error_space will be throwed. * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone): Use map (which is sparse) instead of vector. This reduce n times clones' cost from O(n^2) to O(n). * include/std/regex: Add map dependency. * testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc: New testcase. From-SVN: r212185
2014-07-01re PR libstdc++/61424 (std::regex matches right to left, not leftmost longest)Tim Shen7-8/+123
PR libstdc++/61424 * include/bits/regex.tcc (__regex_algo_impl<>): Use DFS for ECMAScript, not just regex containing back-references. * include/bits/regex_compiler.tcc (_Compiler<>::_M_disjunction): exchange _M_next and _M_alt for alternative operator, making matching from left to right. * include/bits/regex_executor.h (_State_info<>::_M_get_sol_pos): Add position tracking fom DFS. * include/bits/regex_executor.tcc (_Executor<>::_M_main_dispatch, _Executor<>::_M_dfs): Likewise. * include/bits/regex_scanner.h: Remove unused enum entry. * testsuite/28_regex/algorithms/regex_search/61424.cc: New testcase from PR. From-SVN: r212184
2014-07-01* MAINTAINERS: Update my email address.Tim Shen1-1/+1
From-SVN: r212183
2014-07-01Daily bump.GCC Administrator1-1/+1
From-SVN: r212182
2014-06-30revert: tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if ↵Jan Hubicka5-260/+79
type is complete. Revert: * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if type is complete. (write_ts_type_common_tree_pointers): Do not stream fields not set for incomplete types; do not stream duplicated fields for variants; sanity check that variant and type match. (write_ts_type_non_common_tree_pointers): Likewise. * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in TYPE_SIZE whether type is complete. (lto_input_ts_type_common_tree_pointers): Do same changes as in write_ts_type_common_tree_pointers (lto_input_ts_type_non_common_tree_pointers): Likewise. * lto.c (lto_copy_fields_not_streamed): New function. (compare_tree_sccs_1): Do not compare fields shared in between type and variant. (lto_read_decls): Fixup types first before inserting into hash. From-SVN: r212179
2014-06-30var-tracking.c (add_stores): Return instead of asserting if old and new ↵Joseph Myers2-1/+7
values for conditional store are the... * var-tracking.c (add_stores): Return instead of asserting if old and new values for conditional store are the same. From-SVN: r212178
2014-06-30re PR ipa/61659 (Extra undefined symbol because of devirtualization)Jason Merrill7-10/+43
PR c++/61659 PR lto/53808 gcc/cp * decl2.c (maybe_emit_vtables): Mark all vtable entries if devirtualizing. * init.c (build_vtbl_address): Don't mark destructor. * class.c (finish_struct_1): Add all classes to keyed_classes if devirtualizing. libstdc++-v3/ * libsupc++/cxxabi.h (class __pbase_type_info): __pointer_catch is pure, not inline. From-SVN: r212174
2014-06-30re PR rtl-optimization/61608 (FAIL: gcc.target/arm/epilog-1.c scan-assembler ↵Richard Henderson3-15/+24
tests) PR rtl-opt/61608 PR target/39284 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup the cfg if there were any changes. * passes.def: Revert move of peephole2 after reorder_blocks; move duplicate_computed_gotos before peephole2. From-SVN: r212172
2014-06-30except.c (emit_note_eh_region_end): New helper function.Uros Bizjak3-9/+41
* except.c (emit_note_eh_region_end): New helper function. (convert_to_eh_region_ranges): Use emit_note_eh_region_end to emit EH_REGION_END note. * jump.c (cleanup_barriers): Do not split a call and its corresponding CALL_ARG_LOCATION note. From-SVN: r212171
2014-06-30ChangeLog: Fix whitespace.Uros Bizjak2-53/+47
* ChangeLog: Fix whitespace. * testsuite/ChangeLog: Ditto. From-SVN: r212170
2014-06-30round_4.f90: Skip for powerpc*-*-linux* since the test requires greater ↵Bill Schmidt2-0/+7
precision than the... 2014-06-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gfortran.dg/round_4.f90: Skip for powerpc*-*-linux* since the test requires greater precision than the current PowerPC long double implementation supports. From-SVN: r212169
2014-06-30re PR c++/61647 (internal compiler error: in push_access_scope, at ↵Jason Merrill3-1/+39
cp/pt.c:219 for a c++ header, clang++ 3.4 generate .pch without error) PR c++/61647 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE. From-SVN: r212168
2014-06-30re PR c++/61566 (ICE in write_unscoped_name)Jason Merrill3-0/+27
PR c++/61566 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL. From-SVN: r212165
2014-06-30decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE TYPE_BINFO or ↵Jason Merrill5-10/+19
TYPE_LANG_SPECIFIC. * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE TYPE_BINFO or TYPE_LANG_SPECIFIC. * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2. (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC. * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member. * pt.c (unify): Also check whether the argument is a PMF. From-SVN: r212164
2014-06-30re PR c++/54891 ([C++11] lambda-expression and explicit type conversion ↵Paolo Carlini4-30/+72
(cast notation)) /cp 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54891 * parser.c (cp_parser_tokens_start_cast_expression): In C++11 a '[' can also start a primary-expression. (cp_parser_cast_expression): Parse a cast-expression only tentatively when cp_parser_tokens_start_cast_expression returns -1. /testsuite 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54891 * g++.dg/cpp0x/lambda/lambda-cast1.C: New. From-SVN: r212162
2014-06-30re PR c++/51400 ([c++0x] ICE with constexpr and attribute noreturn)Paolo Carlini4-6/+26
/c-family 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51400 * c-common.c (handle_noreturn_attribute, handle_const_attribute): Do not discard TYPE_QUALS of type. /testsuite 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51400 * g++.dg/cpp0x/constexpr-attribute3.C: New. From-SVN: r212155
2014-06-30re PR c++/61539 (ICE: in unify_one_argument, at cp/pt.c:15465)Jason Merrill3-2/+56
PR c++/61539 * pt.c (unify_one_argument): Type/expression mismatch just causes deduction failure. From-SVN: r212154
2014-06-30semantics.c (simplify_aggr_init_expr): Remove remnants of 2014-04-11 change.Jason Merrill2-8/+13
* semantics.c (simplify_aggr_init_expr): Remove remnants of 2014-04-11 change. From-SVN: r212153
2014-06-30tree-ssa-threadedge.c (simplify_control_stmt_condition): Look deeper into ↵Jeff Law4-10/+67
the SSA_NAME_VALUE chain. tree-optimization/61607 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look deeper into the SSA_NAME_VALUE chain. tree-optimization/61607 * gcc.dg/tree-ssa/pr61607.c: New test. From-SVN: r212149
2014-06-30convert.c (convert_to_integer): Don't instrument conversions if the function ↵Marek Polacek11-6/+145
has no_sanitize_undefined attribute. * convert.c (convert_to_integer): Don't instrument conversions if the function has no_sanitize_undefined attribute. * ubsan.c: Don't run the ubsan pass if the function has no_sanitize_undefined attribute. c/ * c-decl.c (grokdeclarator): Don't instrument VLAs if the function has no_sanitize_undefined attribute. cp/ * cp-gimplify.c (cp_genericize): Don't instrument returns if the function has no_sanitize_undefined attribute. * decl.c (compute_array_index_type): Don't instrument VLAs if the function has no_sanitize_undefined attribute. testsuite/ * c-c++-common/ubsan/attrib-2.c: New test. * g++.dg/ubsan/return-3.C: New test. From-SVN: r212148
2014-06-30invoke.texi (-fsanitize=bounds): Move to the table with -fsanitize=undefined ↵Jakub Jelinek2-7/+12
suboptions. * doc/invoke.texi (-fsanitize=bounds): Move to the table with -fsanitize=undefined suboptions. From-SVN: r212146