Commit Graph

136254 Commits

Author SHA1 Message Date
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
Andre Vehreschild
56d1b78a4a trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
	* trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
	Fixed datatype of charlen to be a 32-bit int.

From-SVN: r220345
2015-02-02 10:59:47 +01:00
Alan Modra
e404a667bf rs6000.c (rs6000_call_aix): Use unspec rather than mem for toc_restore.
gcc/
	* config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
	than mem for toc_restore.
	* config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
	(call_indirect_aix, call_value_indirect_aix): Adjust to suit.
	(call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
gcc/testsuite/
	* gcc.target/powerpc/cprophard.c: New.

From-SVN: r220344
2015-02-02 17:46:11 +10:30
David Edelsohn
02d3e45e7a re PR libgomp/64635 (darwin produces libgomp-plugin-host_nonshm.1.dylib but tries to load libgomp-plugin-host_nonshm.so.1)
PR libgomp/64635
        * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
        Link with -lpthread.
        * config/aix/plugin-suffix.h: Delete.

From-SVN: r220341
2015-02-01 22:31:31 -05:00
David Edelsohn
353f8ac5c1 re PR target/64047 (ICE: Segmentation fault when compiling gcc.dg/torture/pr52429.c)
PR target/64047
        * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
        explicit default options.

From-SVN: r220340
2015-02-01 19:59:00 -05:00
GCC Administrator
fb96969992 Daily bump.
From-SVN: r220339
2015-02-02 00:16:18 +00:00
Andreas Tobler
f8d6fa7ea0 enum_9.f90: Use arm_eabi instead of arm*-*-linux*.
2015-02-01  Andreas Tobler  <andreast@gcc.gnu.org>

    * gfortran.dg/enum_9.f90: Use arm_eabi instead of arm*-*-linux*.
    * gfortran.dg/enum_10.f90: Likewise. Reorder dg-additional-sources.

From-SVN: r220330
2015-02-01 22:23:27 +01:00
Jan Hubicka
b730d1c991 re PR ipa/64872 (ICE: Segmentation fault during Chromium PGO build)
PR ipa/64872
	* ipa-utils.c (ipa_merge_profiles): Add release argument.
	* ipa-icf.c (sem_function::merge): Do not release body when merging.
	* ipa-utils.h (ipa_merge_profiles): Update prototype.

From-SVN: r220329
2015-02-01 18:46:14 +00:00
Jakub Jelinek
dfde35b359 re PR debug/64817 (compilation hangs at -O3 with -g enabled on x86_64-linux-gnu)
PR debug/64817
	* cfgexpand.c (deep_ter_debug_map): New variable.
	(avoid_deep_ter_for_debug): New function.
	(expand_debug_expr): If TERed SSA_NAME is in
	deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
	instead of trying to expand SSA_NAME's def stmt.
	(expand_debug_locations): When expanding debug bind
	of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
	temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
	value.
	(pass_expand::execute): Call avoid_deep_ter_for_debug on
	all debug bind stmts.  Delete deep_ter_debug_map after
	expand_debug_location if non-NULL and clear it.

	* gcc.dg/pr64817-1.c: New test.
	* gcc.dg/pr64817-2.c: New test.

From-SVN: r220320
2015-02-01 18:26:17 +01:00
Jonathan Wakely
516db2dd07 * src/c++11/futex.cc: Do not define for gthr-single.h targets.
From-SVN: r220319
2015-02-01 15:11:23 +00:00
Jonathan Wakely
13fc08e44e re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10)
PR libstdc++/64883
	* include/c_global/cstdio (gets): Use __deprecated__ attribute instead
	of deprecated.
	* include/c_std/cstdio (gets): Likewise.
	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing
	with attributes used in darwin headers.

From-SVN: r220318
2015-02-01 15:11:08 +00:00
Oleg Endo
2b8427ca54 re PR target/64851 ([SH] Add atomic not)
gcc/
	PR target/64851
	* config/sh/sync.md (atomic_fetch_notsi_hard,
	atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
	atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
	atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
	atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
	atomic_not_fetch<mode>_soft_imask): New insns.

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

From-SVN: r220317
2015-02-01 11:12:47 +00:00
Maxim Kuvyrkov
63387a852e Fix scheduling undeterminism from sorting with DEBUG_INSNs
* haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
	(rank_for_schedule_debug): Split from ...
	(rank_for_schedule): ... this.
	(ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
	* sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.

From-SVN: r220316
2015-02-01 07:29:35 +00:00
Sandra Loosemore
b4fbcb1bf2 md.texi (Machine Constraints): Alphabetize table by target.
2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/md.texi (Machine Constraints): Alphabetize table by target.
	* doc/extend.texi (x86 Variable Attributes): Move section to
	correct alphabetization	after renaming.
	(x86 Type Attributes): Likewise.
	(Target Builtins): Re-alphabetize menu.
	(x86 Built-in Functions): Move section to correct alphabetization
	after renaming.
	(x86 transactional memory intrinsics): Likewise.
	* doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
	and x86 Windows Options in table and menu.
	(x86 Options): Move section to correct alphabetization after
	renaming.
	(x86 Windows Options): Likewise.

From-SVN: r220315
2015-01-31 21:11:30 -05:00
Sandra Loosemore
0353c564de Correct Changelog for r220309
From-SVN: r220314
2015-01-31 21:09:48 -05:00
Joseph Myers
db30e21cbf Always pass 0 or option number to gfc_warning*.
Similar to the issue with fatal_error that I fixed in
<https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02690.html>, the
overloads of gfc_warning and gfc_warning_now (with and without a first
argument for an option number) also break gcc.pot regeneration because
xgettext expects the translated string argument to be in a fixed
position for a given function name.  This patch applies the
corresponding fix of always passing a first argument (option number or
0), just like the core diagnostic functions warning and warning_at,
and removing the problem overloads without it.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.

	* error.c (gfc_warning (const char *, ...), gfc_warning_now (const
	char *, ...)): Remove functions.
	* gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
	(const char *, ...)): Remove declarations.
	* arith.c, check.c, data.c, decl.c, frontend-passes.c,
	interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
	options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
	trans-common.c, trans-const.c, trans-stmt.c: All callers of
	gfc_warning and gfc_warning_now changed to pass 0 or option number
	as first argument.

From-SVN: r220313
2015-02-01 00:29:54 +00:00
GCC Administrator
35fa7aa737 Daily bump.
From-SVN: r220312
2015-02-01 00:16:11 +00:00
Sandra Loosemore
7d47d0a1b8 extend.texi: Use "x86"...
2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
	preferred names of the architecture and its 32- and 64-bit
	variants.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

From-SVN: r220309
2015-01-31 18:47:13 -05:00
John David Anglin
407028931a linux-atomic.c (__kernel_cmpxchg2): Change declaration of oldval and newval to const void *.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Change declaration of
	oldval and newval to const void *.  Fix typo.
	(FETCH_AND_OP_2): Use __atomic_load_n to load value.
	(FETCH_AND_OP_WORD): Likewise.
	(OP_AND_FETCH_WORD): Likewise.
	(COMPARE_AND_SWAP_2): Likewise.
	(__sync_val_compare_and_swap_4): Likewise.
	(__sync_lock_test_and_set_4): Likewise.
	(SYNC_LOCK_RELEASE_2): Likewise.
	Remove support for long long atomic operations.

From-SVN: r220307
2015-01-31 19:45:53 +00:00
Uros Bizjak
0d9a5f8adc re PR target/64882 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5681)
2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

        PR target/64882
	* config/i386/predicates.md (address_no_seg_operand): Reject
	non-CONST_INT_P operands in invalid mode.

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
	address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
	* config/i386/predicates.md (address_no_seg_operand): Call
	address_operand with VOIDmode.
	(vsib_address_operand): Ditto.
	(address_mpx_no_base_operand): Ditto.
	(address_mpx_no_index_operand): Ditto.

testsuite/ChangeLog:

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

        PR target/64882
	* gcc.dg/torture/pr64882.c: New test.

From-SVN: r220306
2015-01-31 16:30:30 +01:00
David Edelsohn
6b92143e78 re PR target/64159 (FAIL: gcc.dg/tree-ssa/ssa-dom-cse-2.c scan-tree-dump optimized "return 28;")
PR target/64159
        * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add XFAIL for powerpc*-*-* and
        sparc*-*-*.

From-SVN: r220305
2015-01-31 09:57:43 -05:00
Uros Bizjak
efdfdb2413 * fixincl.c (fix_applies) <case TT_CKSUM:>: Change C++ style comments.
From-SVN: r220304
2015-01-31 14:14:56 +01:00
Uros Bizjak
cca0f8ca9a pr64146.C (dg-final): Cleanup icf ipa dump.
* g++.dg/ipa/pr64146.C (dg-final): Cleanup icf ipa dump.
	* gcc.target/i386/chkp-builtins-1.c (dg-final): Cleanup chkp tree dump.
	* gcc.target/i386/chkp-builtins-2.c (dg-final): Ditto.
	* gcc.target/i386/chkp-builtins-3.c (dg-final): Ditto.
	* gcc.target/i386/chkp-builtins-4.c (dg-final): Ditto.
	* gcc.target/i386/chkp-const-check-1.c (dg-final): Cleanup chkopt
	tree dump.
	* gcc.target/i386/chkp-lifetime-1.c (dg-final): Ditto.
	* gcc.target/i386/chkp-remove-bndint-1.c (dg-final): Cleanup optimized
	tree dump.
	* gcc.target/i386/chkp-remove-bndint-2.c (dg-final): Ditto.
	* gfortran.dg/goacc/private-1.f95 (dg-final): Cleanup omplower
	tree dump.

From-SVN: r220303
2015-01-31 10:52:20 +01:00
Ian Lance Taylor
106aaf4f82 compiler: Treat map index expressions as lvalues in range expressions.
Fixes golang/go#9695.

From-SVN: r220301
2015-01-31 00:20:10 +00:00
GCC Administrator
a6b483da4d Daily bump.
From-SVN: r220300
2015-01-31 00:16:36 +00:00
Vladimir Makarov
895ff86f2e re PR rtl-optimization/64688 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))
2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64688
	* lra-constraints.c (original_subreg_reg_mode): New.
	(simplify_operand_subreg): Try to simplify subreg of const.  Use
	original_subreg_reg_mode for it.
	(swap_operands): Update original_subreg_reg_mode.
	(curr_insn_transform): Set up original_subreg_reg_mode.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64688
	* g++.dg/pr64688-2.C: New.

From-SVN: r220297
2015-01-30 22:22:58 +00:00
Uros Bizjak
1c9cc1d304 fuse-caller-save-rec.c: Require nonpic target.
* gcc.target/i386/fuse-caller-save-rec.c: Require nonpic target.
	* gcc.target/i386/fuse-caller-save-xmm.c: Ditto.
	* gcc.target/i386/fuse-caller-save.c: Ditto.
	* gcc.target/i386/headmerge-1.c: Ditto.
	* gcc.target/i386/headmerge-2.c: Ditto.
	* gcc.target/i386/sibcall-6.c: Ditto.

From-SVN: r220296
2015-01-30 20:50:06 +01:00
Vladimir Makarov
3c954213eb re PR target/64617 (ICE: Max. number of generated reload insns per insn is achieved (90) with -ftree-vectorize -mavx512bw -march=slm)
2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64617
	* lra-constraints.c (prohibited_class_reg_set_mode_p): New
	function.
	(process_alt_operands): Use it.
	(curr_insn_transform): Check the optional reload pseudo class is
	ok for the mode.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64617
	* gcc.target/i386/pr64617.c: New test.

From-SVN: r220294
2015-01-30 17:47:44 +00:00
Joseph Myers
40fecdd62f Always pass explicit location to fatal_error.
The patch <https://gcc.gnu.org/ml/gcc-patches/2014-11/msg00698.html>
adding an overload for fatal_error that passes an explicit location
broke gcc.pot regeneration because xgettext cannot handle function
overloads with the diagnostic string argument in different positions.

As the desired direction is for all diagnostics to have explicit
locations, this patch addresses the regression by removing the version
of fatal_error that does not pass a location, passing explicit
input_location everywhere (in the hope that those will incrementally
be changed to other locations, much as with the addition of a location
argument to pedwarn some time ago - a lot of cases aren't meaningfully
associated with a source file so UNKNOWN_LOCATION may be better).

Note that this patch does not attempt to fix any existing issues with
these diagnostics (such as wrongly starting with capital letters or
ending with '.' or '\n'); it just adds the input_location argument.

Bootstrapped with no regressions for x86_64-unknown-linux-gnu (Go
excluded).

gcc:
	* diagnostic.c (fatal_error (const char *, ...)): Remove function.
	* diagnostic-core.h (fatal_error (const char *, ...)): Remove
	prototype.
	* toplev.h (init_asm_output): Update comment on use of
	UNKNOWN_LOCATION with fatal_error.
	* cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
	config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
	config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
	config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
	config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
	config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
	config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
	ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
	lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
	lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
	tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
	fatal_error changed to pass input_location as first argument.

gcc/c-family:
	* c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
	to pass input_location as first argument.

gcc/cp:
	* class.c, except.c, parser.c, pt.c: All callers of fatal_error
	changed to pass input_location as first argument.

gcc/fortran:
	* f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
	callers of fatal_error changed to pass input_location as first
	argument.

gcc/java:
	* class.c, expr.c, jcf-parse.c, jvspec.c: All callers of
	fatal_error changed to pass input_location as first argument.

gcc/lto:
	* lto-object.c, lto-symtab.c, lto.c: All callers of fatal_error
	changed to pass input_location as first argument.

libcc1:
	* plugin.cc: All callers of fatal_error changed to pass
	input_location as first argument.

From-SVN: r220293
2015-01-30 16:15:00 +00:00
Ian Lance Taylor
4811c44ee0 compiler: Pass location to fatal_error.
The GCC function is changing.

The error functions need to move to a compiler-indepent
approach so that changes to the GCC functions are not a
concern here.

From-SVN: r220292
2015-01-30 16:04:58 +00:00
Ian Lance Taylor
b4d216f6e2 compiler: Add pkgpath symbol information to export data.
This adds the pkgpath symbol to the export data whenever it is
needed--whenever the pkgpath symbol is not the obvious
transformation of the pkgpath.  This lets us determine the
correct symbol name for indirectly imported packages compiled
with -fgo-prefix.

From-SVN: r220291
2015-01-30 15:57:59 +00:00
Robert Dewar
622599c6d2 a-assert.adb: Minor reformatting.
2015-01-30  Robert Dewar  <dewar@adacore.com>

	* a-assert.adb: Minor reformatting.
	* sem_ch13.adb: Minor comment clarification.
	* types.ads: Minor comment update.
	* sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Avoid blow up
	when we have a predicate that is nothing but an inherited dynamic
	predicate.

From-SVN: r220290
2015-01-30 16:31:01 +01:00
Jerome Guitton
0d1476cb57 Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to include cert link spec.
2015-01-30  Jerome Guitton  <guitton@adacore.com>
               
	* gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to     
	include cert link spec.

From-SVN: r220289
2015-01-30 16:29:39 +01:00
Arnaud Charlet
e5cabfacf0 [multiple changes]
2015-01-30  Robert Dewar  <dewar@adacore.com>

	* einfo.ads: Minor comment fix.
	* freeze.adb (Freeze_Profile): Add test for suspicious import
	in pure unit.
	* sem_prag.adb (Process_Import_Or_Interface): Test for suspicious
	use in Pure unit is now moved to Freeze (to properly catch
	Pure_Function exemption).

2015-01-30  Bob Duff  <duff@adacore.com>

	* sem_res.ads: Minor comment fix.
	* sem_type.adb: sem_type.adb (Remove_Conversions): Need to
	check both operands of an operator.

2015-01-30  Yannick Moy  <moy@adacore.com>

	* a-assert.ads, a-assert.adb: Mark package spec in SPARK. Set assertion
	policy for Pre to Ignore.
	(Assert): Add precondition.

From-SVN: r220288
2015-01-30 16:25:38 +01:00
Robert Dewar
b7db11490f sem_prag.adb (Process_Import_Or_Interface): Warn if used in Pure unit.
2015-01-30  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Process_Import_Or_Interface): Warn if used in
	Pure unit.
	* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Clarify
	documentation for some special cases of invalid attempts at
	based integers.

From-SVN: r220287
2015-01-30 16:23:22 +01:00