- 25 May, 2012 18 commits
-
-
From-SVN: r187897
Ian Lance Taylor committed -
morestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp to hold the stack frame on return. libgcc/: * config/i386/morestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp to hold the stack frame on return. gcc/testsuite/: * gcc.dg/split-6.c: New test. From-SVN: r187894
Ian Lance Taylor committed -
PR lto/52178 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL. * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR. From-SVN: r187892
Eric Botcazou committed -
2012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/t-linux64: Delete the 32-bit multilib that uses software floating point emulation. No longer build the multilibs with -mstrict-align. From-SVN: r187891
Michael Meissner committed -
From-SVN: r187889
Ian Lance Taylor committed -
PR obj-c++/53441 * decl.c (grokdeclarator): Check that current_class_type is non-NULL before calling constructor_name_p. From-SVN: r187888
Uros Bizjak committed -
PR middle-end/53008 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if accessed indirectly. (ipa_tm_create_version): Same. From-SVN: r187887
Aldy Hernandez committed -
From-SVN: r187886
Uros Bizjak committed -
PR target/53474 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here. <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c. From-SVN: r187885
Uros Bizjak committed -
re PR target/53435 ((ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass arguments to avx2_permvar8s[f,i] correctly) 2012-05-21 Alexander Ivchenko <alexander.ivchenko@intel.com> PR target/53435 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op. (ix86_expand_vec_perm): Use int mode instead of float. (expand_vec_perm_pshufb): Remove handling of useseless type conversion. From-SVN: r187881
Alexander Ivchenko committed -
PR bootstrap/53472 * contrib/compare-debug (remove_comment): New function. Remove any .comment sections if the first cmp failed. From-SVN: r187879
H.J. Lu committed -
From-SVN: r187875
Eric Botcazou committed -
PR ada/52362 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and gnu_ld variables to yes. * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion. (HAVE_GNU_AS): Likewise. * config.in: Regenerate. * configure: Likewise. ada/ * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker. (__gnat_using_gnu_linker): Delete. * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here... Declare Object_File_Option string constant and Using_GNU_response_file boolean constant. (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker, Opening and Closing local variables. Do not handle the GNU linker specially. (Write_RF): New procedure to write into the response file. Escape some characters if a GNU response file is used. Keep track of error status. Invoke Write_RF to write into the response file. Delete the file only if the link was successful. * mlib-utl.adb: Do not `with' package System. (Gcc): Likewise. Declare Object_File_Option string constant and Using_GNU_response_file boolean constant. (Write_RF): Take a string instead of address and length. Escape some characters if a GNU response file is used. Invoke Write_RF to write into the response file. Delete the file only if the link was successful. Do not warn if it cannot be deleted. From-SVN: r187874
Eric Botcazou committed -
gcc/ 2012-05-25 Tristan Gingold <gingold@adacore.com> * config/i386/i386.c (struct ix86_frame): Remove unused frame field. (ix86_compute_frame_layout): Fix type of stack_alignment_needed and preferred_alignment. gcc/testsuite 2012-05-25 Tristan Gingold <gingold@adacore.com> * gcc.target/i386/large-frame.c: New. From-SVN: r187873
Tristan Gingold committed -
2012-05-25 Tristan Gingold <gingold@adacore.com> * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo. From-SVN: r187872
Tristan Gingold committed -
libgcc/ * config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks. From-SVN: r187871
Olivier Hainque committed -
gcc/ * fold-const.c (optimize_bit_field_compare): Abort early in the strict volatile bitfields case. From-SVN: r187869
Thomas Schwinge committed -
From-SVN: r187865
GCC Administrator committed
-
- 24 May, 2012 22 commits
-
-
From-SVN: r187854
Ian Lance Taylor committed -
libcpp/ PR bootstrap/53459 * lex.c (search_line_fast): Remove unused typedef check_count. From-SVN: r187853
Dodji Seketeli committed -
From Rainer Orth. From-SVN: r187851
Ian Lance Taylor committed -
From-SVN: r187850
Ian Lance Taylor committed -
From-SVN: r187848
Ian Lance Taylor committed -
rs6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default to true_store_to_load_dep_costly. * config/rs6000/rs6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default to true_store_to_load_dep_costly. (adjacent_mem_locations): Move some code to and call... (get_memref_parts): ...new function. (mem_locations_overlap): New function. (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn. (is_mem_ref): Rename to... (find_mem_ref): ...this. Return MEM rtx. (get_store_dest): Remove function. (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add new parameter and adjust calls. (rs6000_is_costly_dependence): Update calls for extra arg. Make sure mem refs overlap for true_store_to_load_dep_costly. (rs6000_sched_reorder2): Update calls for extra arg. Adjust args passed to adjacent_mem_locations. (is_costly_group): Walk resolved dependency list. (force_new_group): Emit group ending nop for Power6/Power7. * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value. (group_ending_nop): New define_insn. * gcc.target/powerpc/lhs-1.c: New. * gcc.target/powerpc/lhs-2.c: New. * gcc.target/powerpc/lhs-3.c: New. From-SVN: r187847
Pat Haugen committed -
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
-