Commit Graph

92284 Commits

Author SHA1 Message Date
Janis Johnson
839a3b8ab5 re PR target/39027 (double floating point suffix of 'd' and 'D' not accepted)
gcc/
	PR c/29027
	* c-lex.c (interpret_float): Default (no suffix) is double.

libcpp/
	PR c/29027
	* include/cpplib.h (CPP_N_DEFAULT): Define.
	* expr.c (interpret_float_suffix): Recognize d or D for double,
	return new value for default.
	(cpp_classify_number): Issue pedwarn for use of d or D in suffix.

gcc/testsuite/
	PR c/29027
	* gcc.dg/fltconst-1.c: Don't error for use of d or D in suffix.
	* gcc.dg/fltconst-2.c: New test.
	* gcc.dg/fltconst-double-pedantic-1.c: New test.
	* gcc.dg/fltconst-double-pedantic-2.c: New test.

From-SVN: r145422
2009-04-01 17:31:26 +00:00
Xinliang David Li
667e8acbce better m128i constant materialization
From-SVN: r145418
2009-04-01 17:17:18 +00:00
Janis Johnson
eec4911606 re PR c/33466 (mixed-case suffix for decimal float constants)
libcpp/
	PR c/33466
	* expr.c (interpret_float_suffix): Reject invalid suffix that uses
	letters from decimal float and fixed-point suffixes.

gcc/testsuite
	PR c/33466
	* gcc.dg/cpp/pr33466.c: New test.
	* gcc.dg/dfp/pr33466.c: New test.
	* gcc.dg/fixed-point/pr33466.c: New test.

From-SVN: r145417
2009-04-01 17:04:42 +00:00
Matt Thomas
c4e7510245 [multiple changes]
2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/vax.c: Add #includes to silence warnings.
	Change #include order to silence two warnings.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
	(ASM_SPEC): Pass -k to the assembler for PIC code.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config.gcc: Add vax-*-linux* to the switch.
	* gcc/config/vax/linux.h: New file. (TARGET_VERSION,
	TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
	Use predicate macros instead of GET_CODE() == foo.
	* gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
	ashlsi3, rotrsi3, <unnamed>): Likewise.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
	jbbccihi, jbbccisi): Remova trailing whitespace.
	* gcc/config/vax/constraints.md: Likewise.
	* gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
	* gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
	* gcc/config/vax/predicates.md: Likewise.
	* gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
	vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
	* gcc/config/vax/vax.h: Likewise.
	* gcc/config/vax/vax.md (nonlocal_goto): Likewise.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
	(indirectable_address_p, adjacent_operands_p): Add spaces around
	braces.
	* gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/vax.c (legitimate_constant_address_p,
	legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
	index_term_p, reg_plus_index_p, legitimate_address_p,
	vax_mode_dependent_address_p): Update comments to match functions
	modified by the recent int->bool conversion.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/builtins.md: Update copyright message.
	* gcc/config/vax/constraints.md: Likewise.
	* gcc/config/vax/netbsd-elf.h: Likewise.
	* gcc/config/vax/predicates.md: Likewise.
	* gcc/config/vax/vax-protos.h: Likewise.
	* gcc/config/vax/vax.c: Likewise.
	* gcc/config/vax/vax.h: Likewise.
	* gcc/config/vax/vax.md: Likewise.
	* gcc/config/vax/vax.opt: Likewise.

2009-04-01	Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>

	* gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
	sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
	* gcc/config/vax/constraints.md (B, R): Likewise.
	* gcc/config/vax/predicates.md (external_memory_operand,
	nonimmediate_addsub_di_operand): Likewise.
	* gcc/config/vax/vax.c (vax_output_int_add): Likewise.
	* gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
	untyped_call): Likewise.

2009-04-01	Matt Thomas <matt@3am-software.com>

	* config/vax/predicates.md: New file. (symbolic_operand,
	local_symbolic_operand, external_symbolic_operand,
	external_const_operand, nonsymbolic_operand, external_memory_operand,
	indirect_memory_operand, indexed_memory_operand,
	illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
	nonimmediate_addsub_di_operand, general_addsub_di_operand): New
	predicate.
	* config/vax/constraints.md: New file. (Z0, U06,  U08, U16, CN6, S08,
	S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
	* config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
	sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
	sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
	* config/vax/vax.opt (mqmath): Add option.
	* config/vax/vax.md (isfx): Extend with DI.
	(VAXintQH, VAXintQHSD): Define.
	(tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
	mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
	and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
	one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
	(movdi): Update constraints and use vax_output_int_move().
	(movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
	movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
	pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
	nonlocal_goto): New.
	(mov<mode>): Extend accepted operand types.
	(subdi3_old): Rename from subdi3, change update constraints and use
	a new implementation.
	* gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
	(FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
	MOVE_RATIO, CLEAR_RATIO): Define.
	(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
	(PRINT_OPERAND): Redefine using a function instead of inlined code.
	* gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
	(split_quadword_operands): Make static and really allow variable
	splitting.
	(print_operand_address): Update for PIC generation.
	(print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
	indexable_address_p, fixup_mathdi_operand,
	vax_expand_addsub_di_operands, adjacent_operands_p): New.
	(vax_float_literal, legitimate_constant_p,
	indirectable_constant_address_p, index_term_p,
	reg_plus_index_p): Return bool instead of int.
	(vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
	where needed.
	(vax_output_int_move, vax_output_int_add): Extend to allow PIC
	generation.
	(vax_output_conditional_branch): Indent.
	(legitimate_constant_address_p, indirectable_constant_address_p,
	indirectable_address_p, nonindexed_address_p, legitimate_address_p,
	vax_mode_dependent_address_p): Return bool instead of int, update for
	PIC generation.
	* config/vax/vax-protos.h (legitimate_constant_address_p,
	legitimate_constant_p, legitimate_address_p,
	vax_mode_dependent_address_p): Change declaration to bool.
	(legitimate_pic_operand_p, adjacent_operands_p, print_operand,
	vax_expand_addsub_di_operands, vax_output_int_subtract,
	vax_output_movmemsi): Declare.
	(split_quadword_operands, vax_float_literal): Delete declaration.
	* config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
	* config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
	VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
	ASM_OUTPUT_DWARF_PCREL): Define.
	(ASM_SPEC): Change definition to allow PIC generation.

From-SVN: r145416
2009-04-01 17:00:00 +00:00
Steve Ellcey
60911f14c3 Makefil.def (languages): New entries.
* Makefil.def (languages): New entries.
	* Makefile.tpl (check-gcc-*): New generic target.
	* Makefile.in: Regenerate.
	* gcc/doc/sourcebuild.texi: Update front-end requirements.

From-SVN: r145415
2009-04-01 16:41:54 +00:00
H.J. Lu
96137f9574 re PR tree-optimization/35011 (ICE with -fcheck-data-deps)
2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/35011
	* g++.dg/other/pr35011.C: New.

From-SVN: r145413
2009-04-01 09:29:28 -07:00
Jakub Jelinek
d93e052c0e re PR target/39226 (gcc_assert (verify_initial_elim_offsets ()); ICE)
PR target/39226
	* config/rs6000/rs6000.md (andsi3_internal5_nomc,
	anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
	(booldi3_internal3): Use boolean_or_operator instead of
	boolean_operator.

	* gcc.dg/pr39226.c: New test.

From-SVN: r145411
2009-04-01 18:18:46 +02:00
H.J. Lu
eddd291e26 re PR c++/35240 (ICE with new in template parameter)
2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/35240
	* g++.dg/template/pr35240.C: New.

From-SVN: r145408
2009-04-01 08:56:29 -07:00
Joseph Myers
6ccb2a4a4b re PR c/39605 ("error: variable-size type declared outside of any function" is issued twice)
PR c/39605
	* c-decl.c (grokdeclarator): Pedwarn for file-scope array
	declarator whose size is not an integer constant expression but
	folds to an integer constant, then treat it as a constant
	subsequently.

testsuite:
	* gcc.dg/vla-17.c, gcc.dg/vla-18.c: New tests.
	* gcc.dg/pr25682.c: Update expected diagnostics.

From-SVN: r145405
2009-04-01 15:41:06 +01:00
Richard Guenther
299b87f8a2 fold-const.c (fold_plusminus_mult_expr): Do not fold i * 4 + 2 to (i * 2 + 1) * 2.
2009-04-01  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_plusminus_mult_expr): Do not fold
	i * 4 + 2 to (i * 2 + 1) * 2.

	* gcc.dg/fold-plusmult-2.c: New testcase.

From-SVN: r145403
2009-04-01 13:59:53 +00:00
Jakub Jelinek
b85eb797e2 re PR c/37772 (ICE with empty asm statement)
PR c/37772
	* c-parser.c (c_parser_asm_statement): Skip until close paren and
	return if c_parser_asm_string_literal returned NULL.

	* gcc.dg/pr37772.c: New test.
	* g++.dg/ext/asm11.C: New test.

From-SVN: r145401
2009-04-01 15:32:22 +02:00
H.J. Lu
00c7e24fdd (restore_ld_library_path_env_vars): Always restore GCC_EXEC_PREFIX to its original value...
2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	(restore_ld_library_path_env_vars): Always restore GCC_EXEC_PREFIX
	to its original value, or unset if it was not defined.

From-SVN: r145400
2009-04-01 05:36:21 -07:00
Nick Clifton
3f293bd000 Omitted from previous commit.
From-SVN: r145398
2009-04-01 12:22:58 +00:00
Nick Clifton
235e1fe81e m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
* config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
        already defined.
        * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
        * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
        other typedefs to avoid conflicts with libgcc2.c.  Define labels
        to gain 16-bit bit-manipulation functions from libgcc2.c and then
        include it.
        * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
        to gain 16-bit trapping arithmetic functions from libgcc2.c and
        then include it.

From-SVN: r145397
2009-04-01 12:22:14 +00:00
Rafael Avila de Espindola
d6868399fb varasm.c (default_function_rodata_section): Declare DOT as const char*.
2009-04-01  Rafael Avila de Espindola  <espindola@google.com>

       * varasm.c (default_function_rodata_section): Declare DOT as const char*.

From-SVN: r145396
2009-04-01 09:17:07 +00:00
Kai Tietz
73d21f56d1 host-mingw32.c (mingw32_gt_pch_use_address): Make object_name unique for each process.
2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
            Andrey Galkin <agalkin@hypercom.com>

        PR/39492
        * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
        Make object_name unique for each process.


Co-Authored-By: Andrey Galkin <agalkin@hypercom.com>

From-SVN: r145394
2009-04-01 11:05:13 +02:00
Jakub Jelinek
03742a9b01 re PR other/39591 (GOMP_loop_end illegally optmized into GOMP_loop_end_nowait)
PR other/39591
	* omp-low.c (remove_exit_barrier): Don't optimize if there are any
	addressable variables in the parallel that could go out of scope while
	running queued tasks.

	* testsuite/libgomp.c/pr39591-1.c: New test.
	* testsuite/libgomp.c/pr39591-2.c: New test.
	* testsuite/libgomp.c/pr39591-3.c: New test.

From-SVN: r145390
2009-04-01 08:54:52 +02:00
Anatoly Sokolov
4223ff5f25 avr.h (avr_case_values_threshold): Remove declaration.
* config/avr/avr.h (avr_case_values_threshold): Remove declaration.
	(CASE_VALUES_THRESHOLD): Redefine.
	* config/avr/avr.c (avr_override_options): Remove initialization of
	avr_case_values_threshold variable.
	(avr_case_values_threshold): Remove variable. Add new function.
	* config/avr/avr-protos.h (avr_case_values_threshold): Declare.
	* config/avr/avr.opt (mno-tablejump): Remove option.
	* doc/invoke.texi (AVR Options): Remove -mno-tablejump.

From-SVN: r145389
2009-04-01 09:57:14 +04:00
DJ Delorie
e893f6f38e varasm.c (default_function_rodata_section): Don't assume anything about where the first '.' in the section name is.
* varasm.c (default_function_rodata_section): Don't assume
anything about where the first '.' in the section name is.

From-SVN: r145388
2009-04-01 01:26:39 -04:00
Alan Modra
b246d10043 rs6000.c (rs6000_emit_stack_reset): Delete redundant rs6000_emit_stack_tie.
* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
	rs6000_emit_stack_tie.

From-SVN: r145387
2009-04-01 14:39:31 +10:30
Jason Merrill
a70f5987c4 re PR c++/34691 (Default argument checking not performed after overload resolution with C linkage)
PR c++/34691
        * name-lookup.c (pushdecl_maybe_friend): Diagnose mismatched
        extern C declarations.

        * libsupc++/unwind-cxx.h: Correct __cxa_call_terminate prototype.

From-SVN: r145386
2009-03-31 23:34:30 -04:00
Ben Elliston
9daa490df6 * decContext.h: Include gstdint.h instead of <stdint.h>.
From-SVN: r145385
2009-04-01 11:51:55 +11:00
GCC Administrator
0ecca4d11f Daily bump.
From-SVN: r145384
2009-04-01 00:16:56 +00:00
Ian Lance Taylor
d3e37a9e81 tree-eh.c (tree_remove_unreachable_handlers): Compare gimple_code with GIMPLE_RESX, not RESX.
* tree-eh.c (tree_remove_unreachable_handlers): Compare
	gimple_code with GIMPLE_RESX, not RESX.

From-SVN: r145381
2009-04-01 00:03:31 +00:00
Joseph Myers
c1b61fcad3 c-common.c (c_get_ident): New.
* c-common.c (c_get_ident): New.
	(c_common_nodes_and_builtins): Call it for type names that may be
	NULL.

From-SVN: r145380
2009-04-01 00:17:05 +01:00
Ben Elliston
c2d2ad48e2 sysv4.opt (msdata): Improve option description.
* config/rs6000/sysv4.opt (msdata): Improve option description.
--this line, and those below, will be ignored--

M    ChangeLog
M    config/rs6000/sysv4.opt

From-SVN: r145379
2009-04-01 10:14:59 +11:00
H.J. Lu
36e3e6f76e pr33009.c: Removed.
2009-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.c-torture/compile/pr33009.c: Removed.

From-SVN: r145377
2009-03-31 15:31:42 -07:00
Steve Ellcey
13d1a6e78d ia64.md (divsf3_internal_lat): Remove.
* config/ia64/ia64.md (divsf3_internal_lat): Remove.
	(divdf3_internal_lat): Remove.
	(divxf3_internal_lat): Remove.
	(divxf3_internal_thr): Remove.
	(divxf): Use divxf3_internal.
	* config/ia64/div.md (divsf3_internal_lat): New.
	(divdf3_internal_lat): New.
	(divxf3_internal): New.

From-SVN: r145376
2009-03-31 21:51:34 +00:00
Jason Merrill
51fc2d02c7 C++ DR 613
C++ DR 613
        * semantics.c (finish_non_static_data_member): Allow such references
        without an associated object in sizeof/decltype/alignof.

From-SVN: r145375
2009-03-31 17:50:03 -04:00
Ramana Radhakrishnan
8245239992 common.opt (frtl-abstract-sequences): Delete.
2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* common.opt (frtl-abstract-sequences): Delete.
	* doc/invoke.texi (Option Summary): Likewise.
	(Optimize Options): Likewise.
	* rtl-factoring.c: Delete file.
	* Makefile.in (OBJS-common): Remove rtl-factoring.o.
	* passes.c (init_optimization_passes): Remove rtl_abstr_seq pass.


2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* gcc.c-torture/compile/pr33009.c: Delete.
	* gcc.c-torture/compile/pr11832.c: Likewise.

From-SVN: r145374
2009-03-31 21:23:29 +00:00
Joseph Myers
207bf79d7f re PR c/448 (<stdint.h>-related issues (C99 issues))
PR c/448
fixincludes:
	* inclhack.def (newlib_stdint_1, newlib_stdint_2): New fixes.
	* fixincl.x: Regenerate.
	* tests/base/stdint.h: Update.

gcc:
	* Makefile.in (USE_GCC_STDINT): Define.
	(stmp-int-hdrs): Install stdint.h if applicable.
	* c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
	if known.
	(CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
	(SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
	UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
	INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
	(c_common_nodes_and_builtins): Initialize
	underlying_wchar_type_node.  Do not initialize
	signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
	nodes for new types.
	(c_stddef_cpp_builtins): Define macros for new types.
	* c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
	Remove.
	(CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
	CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
	CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
	CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
	CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
	CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
	CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
	CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
	CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
	(signed_wchar_type_node, unsigned_wchar_type_node): Remove.
	(underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
	int16_type_node, int32_type_node, int64_type_node,
	uint8_type_node, uint16_type_node, c_uint32_type_node,
	c_uint64_type_node, int_least8_type_node, int_least16_type_node,
	int_least32_type_node, int_least64_type_node,
	uint_least8_type_node, uint_least16_type_node,
	uint_least32_type_node, uint_least64_type_node,
	int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
	int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
	uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
	uintptr_type_node): Define.
	* c-cppbuiltin.c (builtin_define_constants,
	builtin_define_type_minmax): New.
	(builtin_define_stdint_macros): Define more macros.
	(c_cpp_builtins): Define more limit macros.
	(type_suffix): New.
	(builtin_define_type_max): Define in terms of
	builtin_define_type_minmax.  Remove is_long parameter.  All
	callers changed.
	* config.gcc (use_gcc_stdint): Define.
	(tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
	Add newlib-stdint.h for generic targets.
	* config/glibc-stdint.h, config/newlib-stdint.h,
	ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
	* config/m32c/m32c.h (UINTPTR_TYPE): Define.
	* config/score/score.h (UINTPTR_TYPE): Define.
	* config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
	INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
	UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
	* config/spu/spu.h (STDINT_LONG32): Define.
	* configure.ac (use_gcc_stdint): Substitute.
	* configure: Regenerate.
	* doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
	__INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
	__UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
	__INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
	__INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
	__UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
	__INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
	__UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
	__UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
	__WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
	__SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
	__INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
	__UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
	__INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
	__UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
	__INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
	__INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
	__UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
	__UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
	__INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
	__UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
	* doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
	INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
	INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
	INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
	UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
	INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
	UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
	UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.

gcc/testsuite:
	* lib/target-supports.exp (check_effective_target_stdint_types):
	Update comment.
	(check_effective_target_inttypes_types): New.
	* gcc.dg/c99-stdint-1.c, gcc.dg/c99-stdint-2.c,
	gcc.dg/c99-stdint-3.c, gcc.dg/c99-stdint-4.c,
	gcc.dg/c99-stdint-5.c, gcc.dg/c99-stdint-6.c: New tests.

From-SVN: r145372
2009-03-31 21:30:31 +01:00
Paul Thomas
e49be8f7c3 re PR fortran/38917 (Can't use DATA to initialize pointer to array to NULL())
2009-03-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38917
	* expr.c (gfc_check_assign): Allow pointer components when
	checking for NULL.

	PR fortran/38918
	* resolve.c (check_data_variable): Treat pointer arrays with
	scalars.

2009-03-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38917
	PR fortran/38918
	* gfortran.dg/data_pointer_1.f90: New test.

From-SVN: r145371
2009-03-31 20:05:44 +00:00
Paul Thomas
bf0d171aea re PR fortran/38915 (wrong results for structure assignment of character components when left and right sides overlap)
2009-03-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38915
	* trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
	have a string_length.

2009-03-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38915
	* gfortran.dg/char_length_15.f90: New test.

From-SVN: r145370
2009-03-31 20:03:23 +00:00
Jason Merrill
fba1b95f23 ptree.c (cxx_print_decl): Pretty-print full name of function/template.
* ptree.c (cxx_print_decl): Pretty-print full name of
        function/template.
        (cxx_print_type): Pretty-print full name of class.

From-SVN: r145368
2009-03-31 15:13:15 -04:00
Jason Merrill
2553fb66d9 decl.c (grokdeclarator): Reject pointer to qualified function type.
* decl.c (grokdeclarator): Reject pointer to qualified function
        type.

From-SVN: r145367
2009-03-31 15:06:17 -04:00
Jason Merrill
0e183333b2 re PR c++/37806 (CV-qualifiers on function typedef's are inconsistently accepted depending on typedef scope)
PR c++/37806
        * g++.dg/template/typedef17.C: New test.

From-SVN: r145366
2009-03-31 14:37:49 -04:00
Jason Merrill
0d9c089222 re PR c++/37806 (CV-qualifiers on function typedef's are inconsistently accepted depending on typedef scope)
PR c++/37806
        * typeck.c (cp_apply_type_quals_to_decl): Don't apply any quals
        to a typedef.
        * tree.c (cp_build_qualified_type_real): Don't apply restrict to a
        function type.
        * decl.h (enum decl_context): Add TEMPLATE_TYPE_ARG.
        * decl.c (groktypename): Add is_template_arg parameter.
        (grokdeclarator): Allow function cv-quals on a template type arg.
        * parser.c (cp_parser_new_type_id, cp_parser_type_id): Add
        is_template_arg argument in calls to groktypename.
        * cp-tree.h: Adjust prototype.
        * error.c (dump_type_prefix, dump_type_suffix): Fix plain
        FUNCTION_TYPE printing.

        PR libstdc++/39310
        * include/tr1_impl/type_traits (is_function): Add partial
        specializations with function cv-quals.
        (__is_function_helper): Remove.
        (is_member_pointer): Don't define in terms of is_member_*_pointer.

From-SVN: r145365
2009-03-31 14:31:17 -04:00
Jason Merrill
a3c4975267 mangle.c (write_expression): Mangle dependent name as source-name.
* mangle.c (write_expression): Mangle dependent name as
        source-name.

From-SVN: r145364
2009-03-31 12:52:21 -04:00
Eric Botcazou
d236ace7cb system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
* system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
	* system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
	* system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.

From-SVN: r145361
2009-03-31 16:17:03 +00:00
Jason Merrill
5094a79562 PR c++/38030, 38850, 39070
PR c++/38030, 38850, 39070
        * pt.c (type_dependent_expression_p_push): New fn.
        (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
        substitution makes the call non-dependent.  Preserve koenig_p.
        * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
        for non-dependent calls.
        * semantics.c (finish_call_expr): Revert earlier changes.
        * cp-tree.h: Revert change to finish_call_expr prototype.

From-SVN: r145360
2009-03-31 11:42:58 -04:00
Bernd Schmidt
60081874a0 loop-iv.c (replace_single_def_regs, [...]): New static functions.
* loop-iv.c (replace_single_def_regs, replace_in_expr): New static
	functions.
	(simplify_using_assignment, simplify_using_initial_values): Call 
	replace_in_expr to make replacements.  Call replace_single_def_regs
	once on the initial version of the expression.

From-SVN: r145357
2009-03-31 15:24:24 +00:00
Bernd Schmidt
b30321cd32 loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
* loop-iv.c (simple_rhs_p): Allow more kinds of expressions.

From-SVN: r145355
2009-03-31 15:22:13 +00:00
Bernd Schmidt
28af33b031 loop-iv.c (determine_max_iter): New arg OLD_NITER.
* loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
	changed.  Use this when trying to improve the upper bound.
	Generate the comparison by using simplify_gen_relational.

From-SVN: r145354
2009-03-31 15:21:30 +00:00
Bernd Schmidt
1d1eb80cf6 simplify-rtx.c (simplify_relational_operation_1): Simplify (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C)...
* simplify-rtx.c (simplify_relational_operation_1): Simplify
	(LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
	GEU/LTU reversed.

From-SVN: r145353
2009-03-31 15:19:33 +00:00
Bernd Schmidt
1569e19062 loop-iv.c (simplify_using_condition): A condition of the form (EQ REG CONST) can be used to simply make a substitution.
* loop-iv.c (simplify_using_condition): A condition of the form
	(EQ REG CONST) can be used to simply make a substitution.
	(simplify_using_initial_values): Keep track of conditions we have seen
	and keep using them to simplify new expressions, while applying the
	same substitutions to them as to the expression.

From-SVN: r145352
2009-03-31 15:16:41 +00:00
Bernd Schmidt
ed853664c5 loop-iv.c (suitable_set_for_replacement): Renamed from simplify_using_assignment...
* loop-iv.c (suitable_set_for_replacement): Renamed from
	simplify_using_assignment; changed to return bool and to accept new
	args DEST and SRC.  Return true iff we find a source/destination pair
	that can be used to make a replacement, and fill SRC and DEST if so.
	Remove arg ALTERED.  Don't deal with altered regs here.  All callers
	changed.
	(simplify_using_initial_values): Deal with altered regs here and track
	more precisely the effect they have on the validity of our expression.

From-SVN: r145351
2009-03-31 15:15:04 +00:00
Ramana Radhakrishnan
bebc6e07b1 Fix documentation for -mthumb
From-SVN: r145347
2009-03-31 14:41:32 +00:00
Richard Guenther
6b12efe971 re PR middle-end/31029 (Fold does not fold C - a == a)
2009-03-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31029
	* fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
	equality comparisons.  Fold C - X CMP X if C % 2 == 1.

	* gcc.dg/fold-compare-4.c: New testcase.
	* gcc.dg/fold-compare-5.c: Likewise.

From-SVN: r145345
2009-03-31 14:28:16 +00:00
Richard Guenther
108f6c2f4e tree.h (div_if_zero_remainder): Declare.
2009-03-31  Richard Guenther  <rguenther@suse.de>

	* tree.h (div_if_zero_remainder): Declare.
	* fold-const.c (div_if_zero_remainder): Export.
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Handle
	constant array index addition outside of the variable index.

	* gcc.dg/tree-ssa/forwprop-12.c: New testcase.

From-SVN: r145343
2009-03-31 13:16:36 +00:00
Joseph Myers
8f6121903f re PR target/39592 (Revision 145272 breaks -ansi -msse)
PR target/39592
	* config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
	define_splits, floatunssi<mode>2): Require x87 conversions from
	DImode to be permitted.

testsuite:
	* gcc.target/i386/pr39592-1.c: New test.

From-SVN: r145342
2009-03-31 13:51:02 +01:00