1. 29 May, 2012 15 commits
    • rtl.h (assign_stack_temp, [...]): Remove 'keep' argument. · 9474e8ab
      	* rtl.h (assign_stack_temp, assign_stack_temp_for_type,
      	assign_temp): Remove 'keep' argument.
      	(mark_temp_addr_taken): Remove prototype.
      	* tree.h (expand_decl): Remove prototype.
      	* function.c (struct temp_slot): Remove addr_taken and keep
      	member.
      	(assign_stack_temp_for_type) Don't initialize above, remove
      	keep argument.
      	(assign_stack_temp, assign_temp): Remove keep argument.
      	(mark_temp_addr_taken): Remove.
      	(preserve_temp_slots): Remove handling of addr_taken and keep
      	members.
      	(free_temp_slots): Ditto.
      	* expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
      	dead code.
      	* stmt.c (expand_asm_operands): Remove dead code.
      	(expand_decl): Remove.
      	* c-decl.c (finish_struct): Don't call expand_decl.
      	* builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
      	and assign_stack_temp.
      	* calls.c (save_fixed_argument_area, initialize_argument_information,
      	expand_call, emit_library_call_value_1, store_one_arg): Ditto.
      	* expmed.c (extract_bit_field_1): Ditto.
      	* expr.c (emit_group_load_1, emit_group_store,
      	copy_blkmode_from_reg, emit_push_insn, expand_assignment,
      	store_field, expand_constructor, expand_cond_expr_using_cmove,
      	expand_expr_real_2, expand_expr_real_1): Ditto.
      	* stmt.c (expand_asm_operands, expand_return): Ditto.
      
      	* function.c (pop_temp_slots): Call free_temp_slots.
      	* calls.c (store_one_arg): Don't call preserve_temp_slots or
      	free_temp_slots.
      	* expr.c (expand_assignment): Don't call free_temp_slots.
      
      	* config/arm/arm.c (neon_expand_vector_init): Ditto.
      	* config/i386/i386.c (ix86_expand_vector_set): Ditto.
      	(ix86_expand_vector_extract): Ditto.
      	* config/ia64/ia64.c (spill_xfmode_rfmode_operand,
      	ia64_expand_movxf_movrf): Ditto.
      	* config/mips/mips.c (mips_expand_vi_general): Ditto.
      	* config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
      	extendsfdf2): Ditto.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_init,
      	rs6000_expand_vector_set, rs6000_expand_vector_extract,
      	rs6000_allocate_stack_temp): Ditto.
      	* config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
      	* config/sparc/sparc.c (emit_soft_tfmode_libcall,
      	sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
      	sparc_expand_vector_init): Ditto.
      
      From-SVN: r187965
      Michael Matz committed
    • expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate a kept temp. · ca5f4331
      	* expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
      	a kept temp.
      	(expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
      	* gimple-fold.c (canonicalize_constructor_val): Canonicalize 
      	COMPOUND_LITERAL_EXPR.
      	* function.c (expand_function_start): Don't call expand_decl,
      	instead assert that we have RTL assigned.
      	* tree-ssa-live.c (remove_unused_locals): Clear
      	nonlocal_goto_save_area if its backing variable is removed.
      	* stmt.c (expand_asm_operands): Remove handling of non-lvalues
      	as mem inputs.
      	(expand_decl): Assert that this does nothing.
      	* calls.c (expand_call): Don't call mark_temp_addr_taken.
      
      	* c-tree.h (c_expand_decl): Remove prototype.
      
      c-family/
      	* c-common.h (c_expand_decl): Remove prototype.
      
      ada/
      	* gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.
      
      From-SVN: r187962
      Michael Matz committed
    • re PR tree-optimization/53516 (Vectorization and memset recognition miscompile bitfield stores) · 508ef0c6
      2012-05-29  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/53516
      	* tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
      	bitfield accesses.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
      
      	* gcc.dg/torture/pr53516.c: New testcase.
      
      From-SVN: r187961
      Richard Guenther committed
    • LANGUAGES: Fix typos. · 073a8998
      	* LANGUAGES: Fix typos.
      	* Makefile.in: Fix typos.
      	* alias.c: Fix typos.
      	* auto-inc-dec.c: Fix typos.
      	* bb-reorder.c: Fix typos.
      	* cfgcleanup.c: Fix typos.
      	* cgraph.c: Fix typos.
      	* cgraph.h: Fix typos.
      	* cgraphunit.c: Fix typos.
      	* collect2-aix.h: Fix typos.
      	* collect2.c: Fix typos.
      	* compare-elim.c: Fix typos.
      	* config/alpha/vms.h: Fix typos.
      	* config/arm/README-interworking: Fix typos.
      	* config/arm/arm.c: Fix typos.
      	* config/arm/iterators.md: Fix typos.
      	* config/arm/vxworks.h: Fix typos.
      	* config/avr/avr.c: Fix typos.
      	* config/avr/avr.h: Fix typos.
      	* config/avr/avr.md: Fix typos.
      	* config/avr/builtins.def: Fix typos.
      	* config/c6x/c6x.c: Fix typos.
      	* config/cr16/cr16.c: Fix typos.
      	* config/cr16/cr16.md: Fix typos.
      	* config/cris/cris.md: Fix typos.
      	* config/darwin.c: Fix typos.
      	* config/darwin.opt: Fix typos.
      	* config/i386/i386-c.c: Fix typos.
      	* config/i386/i386.c: Fix typos.
      	* config/ia64/ia64.c: Fix typos.
      	* config/m68k/cf.md: Fix typos.
      	* config/mep/mep.c: Fix typos.
      	* config/microblaze/microblaze.c: Fix typos.
      	* config/microblaze/microblaze.h: Fix typos.
      	* config/mn10300/mn10300.c: Fix typos.
      	* config/mn10300/mn10300.md: Fix typos.
      	* config/pa/pa.c: Fix typos.
      	* config/picochip/picochip.h: Fix typos.
      	* config/rs6000/a2.md: Fix typos.
      	* config/rs6000/rs6000.c: Fix typos.
      	* config/rs6000/vector.md: Fix typos.
      	* config/rx/rx.md: Fix typos.
      	* config/rx/rx.opt: Fix typos.
      	* config/s390/2097.md: Fix typos.
      	* config/s390/s390.c: Fix typos.
      	* config/s390/s390.h: Fix typos.
      	* config/sh/sh.c: Fix typos.
      	* config/sh/sh.md: Fix typos.
      	* config/sparc/sync.md: Fix typos.
      	* config/spu/spu.c: Fix typos.
      	* config/spu/spu.md: Fix typos.
      	* config/vms/vms.c: Fix typos.
      	* config/vxworks-dummy.h: Fix typos.
      	* config/vxworks.h: Fix typos.
      	* cselib.c: Fix typos.
      	* df-scan.c: Fix typos.
      	* df.h: Fix typos.
      	* doc/extend.texi: Fix typos.
      	* doc/install.texi: Fix typos.
      	* doc/invoke.texi: Fix typos.
      	* doc/md.texi: Fix typos.
      	* doc/plugins.texi: Fix typos.
      	* doc/rtl.texi: Fix typos.
      	* dse.c: Fix typos.
      	* dwarf2asm.c: Fix typos.
      	* dwarf2out.c: Fix typos.
      	* except.h: Fix typos.
      	* expr.c: Fix typos.
      	* fold-const.c: Fix typos.
      	* gcc.c: Fix typos.
      	* gcse.c: Fix typos.
      	* genautomata.c: Fix typos.
      	* gengtype-state.c: Fix typos.
      	* gengtype.c: Fix typos.
      	* genhooks.c: Fix typos.
      	* gimple-fold.c: Fix typos.
      	* gimple-pretty-print.c: Fix typos.
      	* gimple.c: Fix typos.
      	* gimple.h: Fix typos.
      	* gimplify.c: Fix typos.
      	* graphite-interchange.c: Fix typos.
      	* graphite-sese-to-poly.c: Fix typos.
      	* ifcvt.c: Fix typos.
      	* input.c: Fix typos.
      	* ipa-cp.c: Fix typos.
      	* ipa-inline-analysis.c: Fix typos.
      	* ipa-inline-transform.c: Fix typos.
      	* ipa-inline.c: Fix typos.
      	* ipa-pure-const.c: Fix typos.
      	* ipa-ref.h: Fix typos.
      	* ipa-reference.c: Fix typos.
      	* ipa-utils.c: Fix typos.
      	* ipa.c: Fix typos.
      	* ira-emit.c: Fix typos.
      	* ira-lives.c: Fix typos.
      	* lto-streamer.c: Fix typos.
      	* lto-streamer.h: Fix typos.
      	* lto-wrapper.c: Fix typos.
      	* mcf.c: Fix typos.
      	* mode-switching.c: Fix typos.
      	* modulo-sched.c: Fix typos.
      	* plugin.c: Fix typos.
      	* postreload.c: Fix typos.
      	* sched-deps.c: Fix typos.
      	* sel-sched-ir.c: Fix typos.
      	* sel-sched-ir.h: Fix typos.
      	* sel-sched.c: Fix typos.
      	* sese.c: Fix typos.
      	* stor-layout.c: Fix typos.
      	* target-hooks-macros.h: Fix typos.
      	* target.def: Fix typos.
      	* trans-mem.c: Fix typos.
      	* tree-eh.c: Fix typos.
      	* tree-predcom.c: Fix typos.
      	* tree-sra.c: Fix typos.
      	* tree-ssa-address.c: Fix typos.
      	* tree-ssa-loop-ivopts.c: Fix typos.
      	* tree-ssa-loop-niter.c: Fix typos.
      	* tree-ssa-math-opts.c: Fix typos.
      	* tree-ssa-pre.c: Fix typos.
      	* tree-ssa-propagate.c: Fix typos.
      	* tree-ssa-reassoc.c: Fix typos.
      	* tree-ssa-sccvn.c: Fix typos.
      	* tree-ssa-ter.c: Fix typos.
      	* tree-ssa-uninit.c: Fix typos.
      	* tree-ssanames.c: Fix typos.
      	* tree-vect-generic.c: Fix typos.
      	* tree-vect-slp.c: Fix typos.
      	* tree.c: Fix typos.
      	* tree.h: Fix typos.
      	* varasm.c: Fix typos.
      	* varpool.c: Fix typos.
      
      From-SVN: r187959
      Joseph Myers committed
    • * doc/include/texinfo.tex: Update to version 2012-05-16.16. · aba6f2c2
      From-SVN: r187956
      Joseph Myers committed
    • tree-dfa.c (find_vars_r): Do not call add_referenced_vars for globals. · a502e677
      2012-05-29  Richard Guenther  <rguenther@suse.de>
      
      	* tree-dfa.c (find_vars_r): Do not call add_referenced_vars
      	for globals.
      	(add_referenced_var_1): Re-organize.  Assert we are not
      	called for globals.
      	(remove_referenced_var): Likewise.
      	* varpool.c (add_new_static_var): Use create_tmp_var_raw.
      	* tree-mudflap.c (execute_mudflap_function_ops): Do not
      	call add_referenced_var on globals.
      	* matrix-reorg.c (transform_access_sites): Likewise.
      
      From-SVN: r187955
      Richard Guenther committed
    • alias.c (reg_known_value): Make this a VEC. · 9ff3c7ca
      	* alias.c (reg_known_value): Make this a VEC.
      	(reg_known_equiv_p): Make this an sbitmap.
      	(reg_known_value_size): Remove.
      	(get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
      	set_reg_known_equiv_p): Update for reg_known_value and
      	reg_known_value_size data structure change.
      	(init_alias_analysis, end_alias_analysis): Likewise.
      
      From-SVN: r187953
      Steven Bosscher committed
    • re PR middle-end/53510 (OOM while compile some code) · 92b05e72
      	PR middle-end/53510
      	* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
      	to avoid leaking memory.  No need to handle memory allocation
      	failure.  Double string_len on each reallocation instead of
      	adding 2.
      	* gcov.c (read_line): Likewise.
      
      From-SVN: r187952
      Jakub Jelinek committed
    • c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall). · 4f7f7aca
      2012-05-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* c.opt (Wmissing-braces): Use LangEnabledBy(C ObjC,Wall).
      	* c-opts.c (c_common_handle_option): Remove code handling
      	warn_missing_braces.
      
      From-SVN: r187948
      Manuel López-Ibáñez committed
    • PR bootstrap/53459 - unused local typedef when building on altivec · 53a103d3
      	PR bootstrap/53459
      	* lex.c (search_line_fast): Avoid unused local typedefs to simulate
      	a static assertion.
      
      From-SVN: r187947
      Dodji Seketeli committed
    • Revert "PR bootstrap/53459 - unused local typedef when building on altivec" · 6de6b1ec
      This reverts commit r187853
      
      From-SVN: r187946
      Dodji Seketeli committed
    • PR preprocessor/53229 - Fix diagnostics location when pasting tokens · 828a7f76
      As stated in the audit trail of this problem report, consider this
      test case:
      
          $ cat test.c
      	 1	struct x {
      	 2	  int i;
      	 3	};
      	 4	struct x x;
      	 5
      	 6	#define TEST(X) x.##X
      	 7
      	 8	void foo (void)
      	 9	{
      	10	  TEST(i) = 0;
      	11	}
          $
      
          $ cc1 -quiet test.c
          test.c: In function 'foo':
          test.c:10:1: error: pasting "." and "i" does not give a valid preprocessing token
             TEST(i) = 0;
           ^
          $
      
      So, when pasting tokens, the error diagnostic uses the global and
      imprecise input_location variable, leading to an imprecise output.
      
      To properly fix this, I think libcpp should keep the token of the
      pasting operator '##', instead of representing it with flag on the LHS
      operand's token.  That way, it could use its location.  Doing that
      would be quite intrusive though.  So this patch just uses the location
      of the LHS of the pasting operator, for now.  It's IMHO better than
      the current situation.
      
      The patch makes paste_tokens take a location parameter that is used in
      the diagnostics.  This change can still be useful later when we can
      use the location of the pasting operator, because paste_tokens will
      just be passed the new, more precise location.
      
      Incidentally, it appeared that when getting tokens from within
      preprocessor directives (like what is done in gcc.dg/cpp/paste12.c),
      with -ftrack-macro-expansion disabled, the location of the expansion
      point of macros was being lost because
      cpp_reader::set_invocation_location wasn't being properly set.  It's
      because when cpp_get_token_1 calls enter_macro_context, there is a
      little period of time between the beginning of that later function and
      when the macro is really pushed (and thus when the macro is really
      expanded) where we wrongly consider that we are not expanding the
      macro because macro_of_context is still NULL.  In that period of time,
      in the occurrences of indirect recursive calls to cpp_get_token_1,
      this later function wrongly sets cpp_reader::invocation_location
      because cpp_reader::set_invocation_location is not being properly set.
      
      To avoid that confusion the patch does away with
      cpp_reader::set_invocation_location and introduces a new flag
      cpp_reader::about_to_expand_macro_p that is set in the small time
      interval exposed earlier.  A new in_macro_expansion_p is introduced as
      well, so that cpp_get_token_1 can now accurately detect when we are in
      the process of expanding a macro, and thus correctly collect the
      location of the expansion point.
      
      People seem to like screenshots.
      
      Thus, after the patch, we now have:
      
          $ cc1 -quiet test.c
          test.c: In function 'foo':
          test.c:6:18: error: pasting "." and "i" does not give a valid preprocessing token
           #define TEST(X) x.##X
      		      ^
          test.c:10:3: note: in expansion of macro 'TEST'
             TEST(i) = 0;
             ^
          $
      
      Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
      
      libcpp/
      
      	PR preprocessor/53229
      	* internal.h (cpp_reader::set_invocation_location): Remove.
      	(cpp_reader::about_to_expand_macro_p): New member flag.
      	* directives.c (do_pragma):  Remove Kludge as
      	pfile->set_invocation_location is no more.
      	* macro.c (cpp_get_token_1): Do away with the use of
      	cpp_reader::set_invocation_location.  Just collect the macro
      	expansion point when we are about to expand the top-most macro.
      	Do not override cpp_reader::about_to_expand_macro_p.
      	This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
      	properly handle locations of expansion points.
      	(cpp_get_token_with_location): Adjust, as
      	cpp_reader::set_invocation_location is no more.
      	(paste_tokens): Take a virtual location parameter for
      	the LHS of the pasting operator.  Use it in diagnostics.  Update
      	comments.
      	(paste_all_tokens): Tighten the assert.  Propagate the location of
      	the expansion point when no virtual locations are available.
      	Pass the virtual location to paste_tokens.
      	(in_macro_expansion_p): New static function.
      	(enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
      	flag until we really start expanding the macro.
      
      gcc/testsuite/
      
      	PR preprocessor/53229
      	* gcc.dg/cpp/paste6.c: Force to run without
      	-ftrack-macro-expansion.
      	* gcc.dg/cpp/paste8.c: Likewise.
      	* gcc.dg/cpp/paste8-2.c: New test, like paste8.c but run with
      	-ftrack-macro-expansion.
      	* gcc.dg/cpp/paste12.c: Force to run without
      	-ftrack-macro-expansion.
      	* gcc.dg/cpp/paste12-2.c: New test, like paste12.c but run with
      	-ftrack-macro-expansion.
      	* gcc.dg/cpp/paste13.c: Likewise.
      	* gcc.dg/cpp/paste14.c: Likewise.
      	* gcc.dg/cpp/paste14-2.c: New test, like paste14.c but run with
      	-ftrack-macro-expansion.
      	* gcc.dg/cpp/paste18.c: New test.
      
      From-SVN: r187945
      Dodji Seketeli committed
    • trap-1.c, [...]: New tests. · 0de9dab5
      	* gcc.target/cris/torture/trap-1.c,
      	gcc.target/cris/torture/trap-2.c,
      	gcc.target/cris/torture/trap-3.c,
      	gcc.target/cris/torture/trap-v0.c,
      	gcc.target/cris/torture/trap-v3.c: New tests.
      
      From-SVN: r187943
      Hans-Peter Nilsson committed
    • cris.h (TARGET_HAS_BREAK, [...]): New macros. · 64f5af47
      	* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
      	New macros.
      	* config/cris/cris.md ("trap"): Define, enabled for
      	TARGET_TRAP_USING_BREAK8.
      	* config/cris/cris.opt (mtrap-using-break8): New option.
      
      From-SVN: r187942
      Hans-Peter Nilsson committed
    • Daily bump. · 3d383eb7
      From-SVN: r187941
      GCC Administrator committed
  2. 28 May, 2012 7 commits
  3. 27 May, 2012 3 commits
  4. 26 May, 2012 8 commits
  5. 25 May, 2012 7 commits