- 24 May, 2012 16 commits
-
-
2012-05-24 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/53456 * intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime. From-SVN: r187846
Janne Blomqvist committed -
As discussed previously, the unwinder for macro expansion is quite verbose [1]. This patch proposes to address that shortcoming. Consider this test case: $ cat -n test.c 1 #define MYMAX(A,B) __extension__ ({ __typeof__(A) __a = (A); \ 2 __typeof__(B) __b = (B); __a < __b ? __b : __a; }) 3 4 struct mystruct {}; 5 void 6 foo() 7 { 8 struct mystruct p; 9 float f = 0.0; 10 MYMAX (p, f); 11 } $ The output of the compiler from trunk yields: $ cc1 -quiet ./test.c ./test.c: In function ‘foo’: ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’) __typeof__(B) __b = (B); __a < __b ? __b : __a; }) ^ ./test.c:2:31: note: in expansion of macro 'MYMAX' __typeof__(B) __b = (B); __a < __b ? __b : __a; }) ^ ./test.c:10:3: note: expanded from here MYMAX (p, f); ^ $ After this patch, the compiler yields: $ ./cc1 -quiet ./test.c ./test.c: In function ‘foo’: ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’) __typeof__(B) __b = (B); __a < __b ? __b : __a; }) ^ ./test.c:10:3: note: in expansion of macro 'MYMAX' MYMAX (p, f); ^ $ The gotcha is, in the general case, we cannot simply eliminate the context of the macro definition. That is, the line from the first output that is redundant with the first diagnostic line that has line/column number: ./test.c:2:31: note: in expansion of macro 'MYMAX' __typeof__(B) __b = (B); __a < __b ? __b : __a; }) ^ We cannot simply eliminate that context of macro definition because there are cases where the first diagnostic that has a line/column number doesn't point to a location inside the definition of the macro where the relevant token is used. For instance: $ cat -n test2.c 1 #define OPERATE(OPRD1, OPRT, OPRD2) \ 2 OPRD1 OPRT OPRD2; 3 4 #define SHIFTL(A,B) \ 5 OPERATE (A,<<,B) 6 7 #define MULT(A) \ 8 SHIFTL (A,1) 9 10 void 11 g () 12 { 13 MULT (1.0);// 1.0 << 1; <-- so this is an error. 14 } $ Which yields without the patch: $ cc1 -quiet ./test2.c ./test2.c: In function ‘g’: ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’) OPERATE (A,<<,B) ^ ./test2.c:2:9: note: in expansion of macro 'OPERATE' OPRD1 OPRT OPRD2; ^ ./test2.c:5:3: note: expanded from here OPERATE (A,<<,B) ^ ./test2.c:5:14: note: in expansion of macro 'SHIFTL' OPERATE (A,<<,B) ^ ./test2.c:8:3: note: expanded from here SHIFTL (A,1) ^ ./test2.c:8:3: note: in expansion of macro 'MULT' SHIFTL (A,1) ^ ./test2.c:13:3: note: expanded from here MULT (1.0);// 1.0 << 1; <-- so this is an error. ^ $ Here, the line that has the context of macro definition: ./test2.c:2:9: note: in expansion of macro 'OPERATE' OPRD1 OPRT OPRD2; ^ is useful, because the first diagnostic that has line/column number wasn't pointing into the definition of the macro OPERATE, where the token '<<' is used. ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’) OPERATE (A,<<,B) ^ So in this this case, displaying the macro definition context is not redundant. I think it is even desirable. The patch changes the output in that case to be: ./test2.c: In function ‘g’: ./test2.c:5:14: erreur: invalid operands to binary << (have ‘double’ and ‘int’) OPERATE (A,<<,B) ^ ./test2.c:2:9: note: in definition of macro 'OPERATE' OPRD1 OPRT OPRD2; ^ ./test2.c:8:3: note: in expansion of macro 'SHIFTL' SHIFTL (A,1) ^ ./test2.c:13:3: note: in expansion of macro 'MULT' MULT (1.0);// 1.0 << 1; <-- so this is an error. ^ $ It's shorter, but I believe it has all the information that was present before the patch. [1]: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00321.html Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk. gcc/ Make unwound macro expansion trace less redundant * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print context of macro definition in the trace, when it's redundant. Update comments. gcc/testsuite/ Make unwound macro expansion trace less redundant * gcc.dg/cpp/macro-exp-tracking-1.c: Adjust. * gcc.dg/cpp/macro-exp-tracking-2.c: Likewise. * gcc.dg/cpp/macro-exp-tracking-3.c: Likewise. * gcc.dg/cpp/macro-exp-tracking-4.c: Likewise. * gcc.dg/cpp/macro-exp-tracking-5.c: Likewise. * gcc.dg/cpp/pragma-diagnostic-2.c: Likewise. From-SVN: r187845
Dodji Seketeli committed -
2012-05-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53464 * g++.dg/cpp0x/constexpr-default1.C: New. From-SVN: r187842
Paolo Carlini committed -
From-SVN: r187840
Olivier Hainque committed -
libgcc/ * Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install". From-SVN: r187839
Olivier Hainque committed -
libgcc/ * Makefile.in (clean): Remove libgcc_tm.stamp as well. Use a separate command for stamp removals. From-SVN: r187838
Olivier Hainque committed -
/cp 2012-05-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/32080 * parser.c (cp_parser_ctor_initializer_opt_and_function_body, cp_parser_function_body): Add a bool parameter, true when parsing a function-try-block. (cp_parser_function_try_block): Pass true to the above. (cp_parser_function_definition_after_declarator, cp_parser_function_transaction): Adjust. /testsuite 2012-05-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/32080 * g++.dg/eh/goto2.C: New. From-SVN: r187837
Paolo Carlini committed -
2012-05-24 Richard Guenther <rguenther@suse.de> PR middle-end/53460 * tree-profile.c (tree_profiling): Cleanup the CFG if execute_fixup_cfg requests it. * g++.dg/tree-prof/pr53460.C: New testcase. From-SVN: r187831
Richard Guenther committed -
2012-05-24 Richard Guenther <rguenther@suse.de> PR bootstrap/53466 * g++.dg/debug/pr53466.C: New testcase. From-SVN: r187830
Richard Guenther committed -
2012-05-24 Richard Guenther <rguenther@suse.de> * tree-flow.h (create_var_ann): Remove. * tree-dfa.c (create_var_ann): Remove and inline into its single caller ... (add_referenced_var_1): ... here. * varpool.c (add_new_static_var): Do not call add_referenced_var for global vars. * gimple-fold.c (canonicalize_constructor_val): Likewise. * tree-switch-conversion.c (build_one_array): Likewise. * tree-profile.c (gimple_gen_ic_profiler): Likewise. * tree-flow-inline.h (gimple_referenced_vars): Guard against NULL fn argument. * tree-inline.c (remap_gimple_op_r): Likewise. Check gimple_referenced_vars instead of gimple_in_ssa_p. (copy_tree_body_r): Likewise. (setup_one_parameter): Likewise. (declare_return_variable): Likewise. (tree_function_versioning): Likewise. From-SVN: r187829
Richard Guenther committed -
PR tree-optimization/53465 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range vr0 into *vr, then vrp_meet that. (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't have any equivalences. (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the first time. * gcc.c-torture/execute/pr53465.c: New test. From-SVN: r187827
Jakub Jelinek committed -
2012-05-24 Jim MacArthur<jim.macarthur@arm.com> * recog.c (reg_fits_class_p): Check both regno and regno + offset are hard registers. * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and check end_regno - 1 is a hard register. From-SVN: r187826
Jim MacArthur committed -
2012-05-24 Richard Guenther <rguenther@suse.de> * varpool.c (add_new_static_var): Remove call to create_var_ann. * tree-ssa-operands.c (create_vop_var): Likewise. From-SVN: r187825
Richard Guenther committed -
2012-05-24 Richard Guenther <rguenther@suse.de> PR bootstrap/53466 * tree-ssa-live.c (remove_unused_scope_block_p): Properly handle globals. (remove_unused_locals): Pass global_unused_vars to remove_unused_scope_block_p. Restore code walking all referenced vars and pruning them. From-SVN: r187824
Richard Guenther committed -
* tree.h (alias_diag_flags): Remove. (alias_pair): Remove emitted_diags. (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs, symbol_alias_set_t, symbol_alias_set_destroy, symbol_alias_set_contains, propagate_aliases_backward): Remove. * toplev.c (compile_file): Do not call finish_aliases_2 * cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1. (handle_alias_pairs): Output diagnostics about aliases to externals. (assemble_thunks_and_aliases): Use do_assemble_alias. (output_weakrefs): Likewise. (finalize_compilation_unit): Do not call finish_aliases_1. * ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs. * varasm.c (do_assemble_alias): Export. (symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains, symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward, propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias, remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2, assemble_alias): Remove. * output.h (do_assemble_alias): Declare. * varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1. From-SVN: r187823
Jan Hubicka committed -
From-SVN: r187822
GCC Administrator committed
-
- 23 May, 2012 14 commits
-
-
* leb128.h: #include stdint.h, inttypes.h. (read_uleb128_to_uint64): Renamed from read_uleb128_to_ull. Change to take a uint64_t * argument instead of unsigned long long. (read_sleb128_to_uint64): Renamed from read_sleb128_to_ll. Change to take an int64_t * argument instead of long long. From-SVN: r187818
Doug Evans committed -
2012-05-23 Martin Jambor <mjambor@suse.cz> * ipa-inline-analysis.c (inline_merge_summary): Free operand_map. From-SVN: r187817
Martin Jambor committed -
2012-05-23 Tobias Burnus <burnus@net-b.de> PR fortran/51055 PR fortran/45170 * match.c (gfc_match_allocate): Set length_from_typespec for characters. * resolve.c (resolve_charlen): If set, don't check whether the len is a specification expression. 2012-05-23 Tobias Burnus <burnus@net-b.de> PR fortran/51055 PR fortran/45170 * gfortran.dg/allocate_with_typespec_6.f90: New. From-SVN: r187811
Tobias Burnus committed -
* gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus size handling. (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise. (iterative_hash_gimple_type): Adjust comment. (iterative_hash_canonical_type): Likewise. Hash the bounds of the domain for an array type instead of the domain type itself. From-SVN: r187807
Eric Botcazou committed -
2012-05-23 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/53456 * intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime. From-SVN: r187806
Janne Blomqvist committed -
Index: gcc/tree-sra.c =================================================================== --- gcc/tree-sra.c (revision 187800) +++ gcc/tree-sra.c (working copy) @@ -2096,9 +2096,12 @@ analyze_access_subtree (struct access *root, struc && (TREE_CODE (root->type) != INTEGER_TYPE || TYPE_PRECISION (root->type) != root->size) /* But leave bitfield accesses alone. */ - && (root->offset % BITS_PER_UNIT) == 0) + && (TREE_CODE (root->expr) != COMPONENT_REF + || !DECL_BIT_FIELD (TREE_OPERAND (root->expr, 1)))) { tree rt = root->type; + gcc_assert ((root->offset % BITS_PER_UNIT) == 0 + && (root->size % BITS_PER_UNIT) == 0); root->type = build_nonstandard_integer_type (root->size, TYPE_UNSIGNED (rt)); root->expr = build_ref_for_offset (UNKNOWN_LOCATION, From-SVN: r187805
Richard Guenther committed -
PR target/53448 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1. * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use ASM_OUTPUT_ALIGN. From-SVN: r187803
Georg-Johann Lay committed -
/cp 2012-05-23 Paolo Carlini <paolo.carlini@oracle.com> PR c++/29185 * decl2.c (delete_sanity): Extend 'deleting array' warning to any array type. /testsuite 2012-05-23 Paolo Carlini <paolo.carlini@oracle.com> PR c++/29185 * g++.dg/warn/delete-array-1.C: New. From-SVN: r187801
Paolo Carlini committed -
2012-05-23 Richard Guenther <rguenther@suse.de> * tree-dfa.c (add_referenced_var_1): Do not add global vars. * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars via the global_unused_vars bitmap. (remove_unused_locals): Handle global vars in local-decls via a global_unused_vars bitmap instead of the used flag in the var annotation. Simplify global variable handling and removal. * gcc.dg/torture/pr39074-2.c: Adjust. * gcc.dg/torture/pr39074.c: Likewise. * gcc.dg/torture/pta-structcopy-1.c: Likewise. * gcc.dg/tree-ssa/alias-19.c: Likewise. From-SVN: r187800
Richard Biener committed -
re PR tree-optimization/53426 (ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581) PR middle-end/53426 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors from other partitions. From-SVN: r187799
Jan Hubicka committed -
PR middle-end/53161 * symtab.c (symtab_register_node): Fix ordering issue. From-SVN: r187798
Jan Hubicka committed -
2012-05-23 Robert Mason <rbmj@verizon.net> Tobias Burnus <burnus@net-b.de> PR libfortran/53445 * intrinsics/chmod.c (chmod_func): Ignore S_ISVTX on VxWorks. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r187797
Robert Mason committed -
2012-05-23 Tobias Burnus <burnus@net-b.de> PR libfortran/53444 * acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks * for two- and three-argument versions of strerror_r. * configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it. * runtime/error.c (gf_strerror): Handle two-argument version of strerror_r. * config.h.in: Regenerate. * configure: Regenerate. From-SVN: r187796
Tobias Burnus committed -
From-SVN: r187788
GCC Administrator committed
-
- 22 May, 2012 10 commits
-
-
PR other/53231 * tas_n.c (libat_test_and_set): Correct return. Remove unused variable. From-SVN: r187783
John David Anglin committed -
From-SVN: r187781
Ian Lance Taylor committed -
From-SVN: r187780
Doug Evans committed -
From-SVN: r187777
Ian Lance Taylor committed -
2012-05-22 Steven Drake <sbd@NetBSD.org> * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir. From-SVN: r187775
Steven Drake committed -
* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): Use strip_name_encoding target hook. From-SVN: r187774
David Edelsohn committed -
http://sourceware.org/bugzilla/show_bug.cgi?id=14065 * testsuite/demangle-expected: Add regression test. * cp-demangle.c (d_find_pack): Return NULL for DEMANGLE_COMPONENT_UNNAMED_TYPE. From-SVN: r187773
Tom Tromey committed -
2012-05-22 Richard Guenther <rguenther@suse.de> * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New. (init_function_for_compilation): Remove. * tree-dfa.c (find_vars_r): Take struct function argument. (find_referenced_vars_in): Adjust. * tree-ssa-operands.c (clobber_stats): Remove. (create_vop_var): Take struct function argument. Mark virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND. (init_ssa_operands): Take struct function argument. (fini_ssa_operands): Do not dump dead stats. * tree-ssa-operands.h (init_ssa_operands): Take struct function argument. * cgraphunit.c (init_lowered_empty_function): Adjust. * lto-streamer-in.c (input_cfg): Likewise. * tree-inline.c (initialize_cfun): Likewise. * tree-into-ssa.c (rewrite_into_ssa): Likewise. * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun. * gimple.c (is_gimple_reg): Optimize the SSA_NAME case, virtual operands are not registers. From-SVN: r187772
Richard Guenther committed -
2012-05-22 Richard Guenther <rguenther@suse.de> * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit. From-SVN: r187771
Richard Guenther committed -
re PR fortran/53389 (-frealloc-lhs: memory leak when assigning array function result to allocatable array, where one of its supplied arguments is itself an array function result) 2012-05-22 Tobias Burnus <burnus@net-b.de> PR fortran/53389 * trans-array.c (gfc_add_loop_ss_code): Don't evaluate * expression, if ss->is_alloc_lhs is set. 2012-05-22 Tobias Burnus <burnus@net-b.de> PR fortran/53389 * gfortran.dg/realloc_on_assign_15.f90: New. From-SVN: r187769
Tobias Burnus committed
-