Commit Graph

136238 Commits

Author SHA1 Message Date
David Malcolm
a4be4e91d2 More fixes for update_web_docs_svn for jit docs (PR jit/64257)
gcc/jit/ChangeLog:
	PR jit/64257
	* docs/conf.py (html_theme): Change from 'pyramid'
	to 'sphinxdoc'.

maintainer-scripts/ChangeLog:
	PR jit/64257
	* update_web_docs_svn: Update build of jit docs to use EPEL6
	variant install of sphinx 1.0.8, rather than 0.6.6.

From-SVN: r220412
2015-02-04 19:11:48 +00:00
Segher Boessenkool
7e36ec2ea2 pr41447-1.c: Remove xfail.
* gcc.dg/guality/pr41447-1.c: Remove xfail.
	* gcc.dg/guality/pr41616-1.c: Ditto.

From-SVN: r220411
2015-02-04 18:22:57 +01:00
Nick Clifton
771bef141f fpmath-sf.S (__rl78_int_pack_a_r8): Fix edge case rounding up the fraction.
* config/rl78/fpmath-sf.S (__rl78_int_pack_a_r8): Fix edge case
	rounding up the fraction.

	* config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
	inside a MEM.

From-SVN: r220410
2015-02-04 16:39:16 +00:00
David Malcolm
f435bff380 jit: fix typo in docs
gcc/jit/ChangeLog:
	* docs/topics/contexts.rst (gcc_jit_context_acquire): Fix
	typo.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r220408
2015-02-04 14:47:08 +00:00
Jakub Jelinek
e3bc4a35bd builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
* builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
	(DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
	(DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
	of DEF_BUILTIN.
	(BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
	BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
	DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
	(BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
	BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
	BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
	DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
	* tree-core.h (enum built_in_function): In between
	BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
	for builtins that use DEF_BUILTIN_CHKP macro.

From-SVN: r220407
2015-02-04 15:26:16 +01:00
Alexandre Oliva
871dae3465 Fix signedness of compares expanding debug exprs.
for  gcc/ChangeLog

	PR debug/64817
	* cfgexpand.c (expand_debug_expr): Compute unsignedp from
	operands for tcc_comparison exprs.  Fix typos.

for  gcc/testsuite/ChangeLog

	PR debug/64817
	* gcc.dg/pr64817-3.c: New.

From-SVN: r220406
2015-02-04 14:24:00 +00:00
Alexandre Oliva
af9f5d95df Simplify XOR of (AND or IOR) of XOR.
for  gcc/ChangeLog

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Simplify one
	of two XORs that have an intervening AND or IOR.

From-SVN: r220405
2015-02-04 14:23:47 +00:00
Alexandre Oliva
a720f0efff Avoid allocating memory when trying but failing to simplify XOR of AND.
for  gcc/ChangeLog

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Rewrite
	simplification of XOR of AND to not allocate new rtx before
	committing to a simplification.

From-SVN: r220404
2015-02-04 14:23:33 +00:00
Kyrylo Tkachov
a1ac80507d [AArch64] Use std::swap instead of manually swapping in aarch64-ldpstp.md
* config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
	manual swaps in all peepholes.

From-SVN: r220403
2015-02-04 13:53:56 +00:00
Kyrylo Tkachov
cb5c6c29bd [AArch64] Use std::swap instead of manually swapping
* config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
	of manual swapping implementation.
	(aarch64_expand_vec_perm_const_1): Likewise.

From-SVN: r220402
2015-02-04 13:52:55 +00:00
James Greenhalgh
bd95e65526 [AArch64] Rid the world of NAMED_PARAM
gcc/

	* config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
	(generic_addrcost_table): Remove NAMED_PARAM.
	(cortexa57_addrcost_table): Likewise.
	(xgene1_addrcost_table): Likewise.
	(generic_regmove_table): Likewise.
	(cortexa53_regmove_table): Likewise.
	(xgene1_regmove_table): Likewise.
	(generic_vector_table): Likewise.
	(cortexa57_vector_table): Likewise.
	(xgene1_vector_table): Likewise.
	(generic_tunings): Likewise.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(xgene1_tunings): Likewise.

From-SVN: r220401
2015-02-04 13:47:13 +00:00
Nick Clifton
20693e972a re PR target/64408 (fr30-elf ICE in extract_insn, at recog.c:2202)
PR target/64408
	* config/fr30/predicates.md (di_operand): Add SUBREG to the list
	of accepted codes.
	(nonimmediate_di_operand): Likewise.

From-SVN: r220400
2015-02-04 13:42:26 +00:00
Matthew Wahab
4f2ab1e630 [ARM] Add support for -mcpu=cortex-a72 and -mcpu=cortex-a72.cortex-a53
gcc/

	* config/arm/arm-cores.def: Add cortex-a72 and
	cortex-a72.cortex-a53.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Add entries for "cortex-a72" and
	"cortex-a72.cortex-a53".
	* doc/invoke.texi (ARM Options/-mtune): Likewise.

From-SVN: r220399
2015-02-04 13:34:58 +00:00
Jakub Jelinek
43534aa21d Adjust pr36728-*.c for targets that pass parameters in registers.
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r220398
2015-02-04 12:29:51 +00:00
Alan Lawrence
251f0b62d6 Minor corrections to gcc.dg/combine_ashiftrt_[12].c
2015-02-04  Alan Lawrence  <alan.lawrence@arm.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc.dg/combine_ashiftrt_1.c: Sort, complete and explain target
	list, allow for multilibed targets.
	* gcc.dg/combine_ashiftrt_2.c: Likewise.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>

From-SVN: r220397
2015-02-04 12:23:08 +00:00
Nick Clifton
6f56da5d6e msp430.c (msp430_use_f5_series_hwmult): Add more prefixes of known F5 using MSP430 MCUs.
* config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
	prefixes of known F5 using MSP430 MCUs.

From-SVN: r220396
2015-02-04 11:50:46 +00:00
Kyrylo Tkachov
151ac6e277 [AArch64] Use target builtin instead of __builtin_sqrt for vsqrt_f64
* config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
	* config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
	instead of __builtin_sqrt.

From-SVN: r220395
2015-02-04 11:46:07 +00:00
Segher Boessenkool
bbbfac7f08 builtins-58.c: Check for pow at the end of words only.
* gcc.dg/builtins-58.c: Check for pow at the end of words only.
	* gcc.dg/pr46728-6.c: Ditto.

From-SVN: r220394
2015-02-04 12:19:17 +01:00
Robert Suchanek
fc2dd6b511 loongson-simd.c: Update comment to clarify the need for mips_nanlegacy target.
2015-02-04  Robert Suchanek  <robert.suchanek@imgtec.com>

	* gcc.target/mips/loongson-simd.c: Update comment to clarify the need
	for mips_nanlegacy target.

From-SVN: r220393
2015-02-04 10:47:29 +00:00
Matthew Wahab
ff9eac2965 [PATCH][libstdc++][Testsuite] isctype test fails for newlib.
libstdc++-v3/
2015-02-02  Matthew Wahab  <matthew.wahab@arm.com>

	PR libstdc++/64467
	* testsuite/28_regex/testsuiteraits/char/isctype.cc (test01): Add newlib
	special case for '\n'.
	* test01estsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.

From-SVN: r220392
2015-02-04 09:24:56 +00:00
Ilya Enkovich
283b44f96a varasm.c (do_assemble_alias): Follow transparent alias chain for target.
gcc/

	* varasm.c (do_assemble_alias): Follow transparent alias
	chain for target.
	(default_assemble_visibility): Follow transparent alias
	chain for decl name.

gcc/testsuite/

	* gcc.target/i386/chkp-hidden-def.c: New.

From-SVN: r220391
2015-02-04 08:26:49 +00:00
Thomas Preud'homme
cc9ef6a641 re PR middle-end/62103 (Incorrect folding of bitfield in a union on big endian targets)
2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR middle-end/62103
    * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
    to compute size of referenced value in the constant case.

    gcc/testsuite/
    PR middle-end/62103
    * gcc.c-torture/execute/bitfld-7.c: New test adapted from bitfld-6.c
    to use 24 bits for bitfield b.

From-SVN: r220390
2015-02-04 08:22:45 +00:00
Thomas Preud'homme
6a5fd0f8c1 re PR testsuite/64796 (effective target bswap64 globally caches target-specific use of lp64)
2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/64796
    * lib/target-supports.exp (check_effective_target_bswap64): Do not
    cache result in a global variable.  Include all 32-bit targets for
    bswap64 tests.

From-SVN: r220388
2015-02-04 01:54:47 +00:00
GCC Administrator
b70695c530 Daily bump.
From-SVN: r220387
2015-02-04 00:16:10 +00:00
Steven G. Kargl
db78ae15d6 intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
2015-02-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	* intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.

From-SVN: r220381
2015-02-03 21:53:39 +00:00
Ian Lance Taylor
bfdd75a859 go/types: Remove unused testdata files.
The go/types package was removed in July 2013, but the
testdata files were accidentally left behind.

From-SVN: r220378
2015-02-03 21:39:27 +00:00
Jakub Jelinek
2a1d78d8f6 re PR rtl-optimization/64756 (wrong code at -O3 on x86_64-linux-gnu (in 32-bit mode))
PR rtl-optimization/64756
	* cse.c (invalidate_dest): New function.
	(cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
	HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
	invalidate and do not record it.

	* gcc.c-torture/execute/pr64756.c: New test.

From-SVN: r220377
2015-02-03 21:41:38 +01:00
Oleg Endo
3548abca02 re PR target/64660 ([SH] Convert atomic_fetch_<op> to atomic_<op>_fetch)
gcc/
	PR target/64660
	* config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
	atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
	atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
	atomic_nand<mode>_soft_tcb): New insns.
	(atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
	(define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
	Split into atomic_not_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
	(atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
	atomic_nand_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.

gcc/testsuite/
	PR target/64660
	* gcc.target/sh/pr64660-0.h: New.
	* gcc.target/sh/pr64660-1.c: New.
	* gcc.target/sh/pr64660-2.c: New.
	* gcc.target/sh/pr64660-3.c: New.
	* gcc.target/sh/pr64660-4.c: New.

From-SVN: r220376
2015-02-03 20:24:13 +00:00
David Malcolm
0ed4f01761 jit: option-logging
gcc/jit/ChangeLog:
	* jit-logging.h (gcc::jit::log_user::log): Make const.
	* jit-recording.c (gcc::jit::recording::context::set_str_option):
	Log the new value of the option.
	(gcc::jit::recording::context::set_int_option): Likewise.
	(gcc::jit::recording::context::set_bool_option): Likewise.
	(gcc::jit::recording::context::compile): Log the value of all
	options.
	(gcc::jit::recording::context::compile_to_file): Likewise.
	(gcc::jit::recording::context::log_all_options): New function.
	(gcc::jit::recording::context::log_str_option): New function.
	(gcc::jit::recording::context::log_int_option): New function.
	(gcc::jit::recording::context::log_bool_option): New function.
	* jit-recording.h (gcc::jit::recording::context::log_all_options):
	New function.
	(gcc::jit::recording::context::log_str_option): New function.
	(gcc::jit::recording::context::log_int_option): New function.
	(gcc::jit::recording::context::log_bool_option): New function.
	* docs/internals/test-hello-world.exe.log.txt: Update for above
	changes.

From-SVN: r220375
2015-02-03 19:28:24 +00:00
Paolo Carlini
457d0ace46 re PR c++/64877 (strange warning message from -Waddress)
/cp
2015-02-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64877
	* typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
	for generated expressions.

/testsuite
2015-02-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64877
	* g++.dg/warn/Waddress-2.C: New.

From-SVN: r220374
2015-02-03 17:21:49 +00:00
David Malcolm
2cb844ce9c PR jit/64810: driver, arm, jit: configure-time default options
gcc/ChangeLog:
	PR jit/64810
	* Makefile.in (GCC_OBJS): Add gcc-main.o.
	* gcc-main.c: New file, containing "main" taken from gcc.c.
	* gcc.c (do_self_spec): Free decoded_options.
	(class driver): Move declaration to gcc.h.
	(main): Move declaration and implementation to new file
	gcc-main.c.
	(driver_get_configure_time_options): New function.
	* gcc.h (class driver): Move this declaration here, from
	gcc.c.
	(driver_get_configure_time_options): New declaration.

gcc/jit/ChangeLog:
	PR jit/64810
	* Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o.
	(LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS.
	* jit-playback.c: Include gcc.h.
	(gcc::jit::playback::context::compile): Move mutex acquisition
	to before the call to make_fake_args.
	(append_arg_from_driver): New function.
	(gcc::jit::playback::context::make_fake_args): On the first call,
	call into driver_get_configure_time_options to get configure-time
	default options and cache them.  Add them to the args for
	toplev::main.
	* jit-spec.c: New source file.
	* docs/internals/test-hello-world.exe.log.txt: Update to reflect
	above changes.

From-SVN: r220373
2015-02-03 17:19:58 +00:00
Jan Hubicka
ebc8f0bb3a ipa-inline-analysis.c (simple_edge_hints): Fix check for cross-module inlining.
* ipa-inline-analysis.c (simple_edge_hints): Fix check for
	cross-module inlining.
	* cgraph.h (cgraph_node): Add flag merged.
	* ipa-icf.c (sem_function::merge): Maintain it.

	* lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag.

From-SVN: r220372
2015-02-03 16:57:20 +00:00
Richard Sandiford
901e59b2bd arm.c (thumb2_reorg): Test UNARY_P and BINARY_P instead of OBJECT_P.
gcc/
	* config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
	instead of OBJECT_P.

From-SVN: r220371
2015-02-03 14:18:38 +00:00
Segher Boessenkool
2944c91ccc re PR middle-end/61225 (Several new failures after r210458 on x86_64-*-* with -m32)
PR middle-end/61225
	gcc.target/i386/pr49095.c: XFAIL for ia32.

From-SVN: r220370
2015-02-03 13:15:32 +01:00
Eric Botcazou
aa47faf097 re PR target/62631 (gcc.dg/tree-ssa/ivopts-lt-2.c FAILs)
PR target/62631
	* config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
	(TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
	* config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
	int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.

From-SVN: r220369
2015-02-03 09:56:45 +00:00
Jakub Jelinek
76f0aa6c5a re PR other/63504 (Issues found by --enable-checking=valgrind)
PR other/63504
	* combine.c (reg_n_sets_max): New variable.
	(can_change_dest_mode, reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value_validate,
	get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
	(try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
	(rest_of_handle_combine): Initialize reg_n_sets_max.

From-SVN: r220368
2015-02-03 10:39:19 +01:00
Dodji Seketeli
f8abc9ba2d PR preprocessor/64803 - __LINE__ inside macro is not constant
Consider the example code mentionned in this PR:

 $ cat -n test.c
      1	#define C(a, b) a ## b
      2	#define L(x) C(L, x)
      3	#define M(a) goto L(__LINE__); __LINE__; L(__LINE__):
      4	M(a /* --> this is the line of the expansion point of M.  */
      5	  ); /* --> this is the line of the end of the invocation of M.  */
 $

"cc1 -quiet -E test.c" yields:

 goto L5; 5; L4:
    ;

Notice how we have a 'L4' there, where it should be L5.  That is the issue.

My understanding is that during the *second* expansion of __LINE__
(the one between the two L(__LINE__)), builtin_macro() is called by
enter_macro_context() with the location of the expansion point of M
(which is at line 4).  Then _cpp_builtin_macro_text() expands __LINE__
into the line number of the location of the last token that has been
lexed, which is the location of the closing parenthesis of the
invocation of M, at line 5.  So that invocation of __LINE__ is
expanded into 5.

Now let's see why the last invocation of __LINE__ is expanded into 4.

In builtin_macro(), we have this code at some point:

   /* Set pfile->cur_token as required by _cpp_lex_direct.  */
   pfile->cur_token = _cpp_temp_token (pfile);
   cpp_token *token = _cpp_lex_direct (pfile);
   /* We should point to the expansion point of the builtin macro.  */
   token->src_loc = loc;

The first two statements insert a new token in the stream of lexed
token and pfile->cur_token[-1], is the "new" last token that has been
lexed.  But the location of pfile->cur_token[-1] is the same location
as the location of the "previous" pfile->cur_token[-1], by courtesy of
_cpp_temp_token().  So normally, in subsequent invocations of
builtin_macro(), the location of pfile->cur_token[-1] should always be
the location of the closing parenthesis of the invocation of M at line
5.  Except that that code in master now has the statement
"token->src_loc = loc;" on the next line.  That statement actually
sets the location of pfile->cur_token[-1] to 'loc'.  Which is the
location of the expansion point of M, which is on line 4.

So in the subsequent call to builtin_macro() (for the last expansion
of __LINE__ in L(__LINE__)), for _cpp_builtin_macro_text(),
pfile->cur_token[-1].src_loc is going to have a line number of 4.

I think the core issue here is that the location that is passed to
builtin_macro() from enter_macro_context() is not correct when we are
in presence of a top-most function-like macro invocation; in that
case, that location should be the location of the closing parenthesis
of the macro invocation.  Otherwise, if we are in presence of a a
top-most object-like macro invocation then the location passed down
to builtin_macro should be the location of the expansion point of the
macro.

That way, in the particular case of the input code above, the location
received by builtin_macro() will always have line number 5.

Boostrapped and tested on x86_64-unknown-linux-gnu against trunk.

libcpp/ChangeLog:

	* internal.h (cpp_reader::top_most_macro_node): New data member.
	* macro.c (enter_macro_context): Pass the location of the end of
	the top-most invocation of the function-like macro, or the
	location of the expansion point of the top-most object-like macro.
	(cpp_get_token_1): Store the top-most macro node in the new
	pfile->top_most_macro_node data member.
	(_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
	data member.

gcc/testsuite/ChangeLog:

	* gcc.dg/cpp/builtin-macro-1.c: New test case.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>

From-SVN: r220367
2015-02-03 10:26:46 +01:00
Ian Lance Taylor
18fbd1ecf1 re PR go/64836 (go.test/test/fixedbugs/issue4348.go FAILs)
PR go/64836
	PR go/64838

compiler: Use int64_t for backend type size and alignment.

Fixes 32-bit host 64-bit target cross-compilation.

	* go-gcc.cc (Gcc_backend::type_size): Change return type to
	int64_t.
	(Gcc_backend::type_alignment): Likewise.
	(Gcc_backend::type_field_alignment): Likewise.
	(Gcc_backend::type_field_offset): Likewise.
	(Gcc_backend::implicit_variable): Change alignment parameter type
	to int64_t.

From-SVN: r220364
2015-02-03 03:33:21 +00:00
Ville Voutilainen
879887f1d2 re PR c++/64901 (overriding final function defined out of line does not lead to an error)
PR c++/64901
	* decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
	DECL_OVERRIDE_P.

From-SVN: r220363
2015-02-02 21:49:42 -05:00
GCC Administrator
cf55ec5696 Daily bump.
From-SVN: r220362
2015-02-03 00:16:11 +00:00
Jan Hubicka
d67bce7ce8 ipa-inline.c (early_inliner): Skip inlining only in always_inlined...
* ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
	if some always_inline was inlined, apply changes before inlining
	heuristically.

	* g++.dg/ipa/devirt-37.C: Disable early inlining.

From-SVN: r220359
2015-02-02 23:46:31 +00:00
Bruno Loff
a4bb6959b8 c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after processing enum declaration.
2015-02-02  Bruno Loff <bruno.loff@gmail.com>

	* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
	processing enum declaration.

From-SVN: r220358
2015-02-02 16:18:56 -05:00
Jason Merrill
4c5cf0b29a * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
From-SVN: r220356
2015-02-02 12:46:56 -05:00
Christophe Lyon
6f105c502c [ARM/AArch64][testsuite] Add vmax, vmin, vhadd, vhsub and vrhadd tests.
2015-02-02  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
	(_ARM_FPSRC): Add DN and AHP fields.
	(clean_results): Force DN=1 on AArch64.
	* gcc.target/aarch64/advsimd-intrinsics/binary_op_no64.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vhadd.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vhsub.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vmax.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vmin.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vrhadd.c: New file.

From-SVN: r220353
2015-02-02 17:56:12 +01:00
Janis Johnson
a436ab274e MAINTAINERS (Various Maintainers: testsuite): Remove myself.
* MAINTAINERS (Various Maintainers: testsuite): Remove myself.
	(Write After Approval): Update address.

From-SVN: r220352
2015-02-02 16:40:20 +00:00
David Malcolm
c58bfeadfa PR jit/64810: fix for arm_option_override
gcc/ChangeLog:
	PR jit/64810
	* config/arm/arm.c (arm_option_override): Set
	arm_selected_arch/cpu/tune to NULL on entry.

From-SVN: r220351
2015-02-02 16:11:15 +00:00
Joseph Myers
0f323065dd Regenerate .pot files.
gcc/po:
	* gcc.pot: Regenerate.

libcpp/po:
	* cpplib.pot: Regenerate.

From-SVN: r220349
2015-02-02 16:07:12 +00:00
Tejas Belagod
3ff5d1f099 re PR target/64231 (SIGSEGV building glibc on aarch64-linux-gnu from r217852)
2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
	    Andrew Pinski  <pinskia@gcc.gnu.org>
	    Jakub Jelinek  <jakub@gcc.gnu.org>

	PR target/64231
	* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
	integer typing for small model. Use IN_RANGE.


Co-Authored-By: Andrew Pinski <pinskia@gcc.gnu.org>
Co-Authored-By: Jakub Jelinek <jakub@gcc.gnu.org>

From-SVN: r220348
2015-02-02 15:54:59 +00:00
David Malcolm
16a71c501a PR jit/64810: support DImode on arm
gcc/jit/ChangeLog:
	PR jit/64810
	* dummy-frontend.c (jit_langhook_type_for_mode): Support
	TYPE_MODE (long_long_integer_type_node).

From-SVN: r220347
2015-02-02 15:21:16 +00:00
Richard Biener
7dd1f7ace3 tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
2015-02-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
	* tree-vrp.c (vrp_valueize_1): Likewise.

From-SVN: r220346
2015-02-02 15:01:28 +00:00