Commit Graph

161963 Commits

Author SHA1 Message Date
Olivier Hainque fb9970973a t-vxworks (LIBGCC_INCLUDES): Add -I$(MULTIBUILDTOP)../../gcc/include.
2018-06-07  Olivier Hainque  <hainque@adacore.com>

        * config/t-vxworks (LIBGCC_INCLUDES): Add
        -I$(MULTIBUILDTOP)../../gcc/include.
        * config/t-vxworks7: Likewise. Reformat a bit to match
        the t-vxworks layout.

From-SVN: r261273
2018-06-07 13:31:24 +00:00
Olga Makhotina a548a5a1d6 config.gcc: Support "tremont".
2018-06-07  Olga Makhotina  <olga.makhotina@intel.com>

gcc/

        * config.gcc: Support "tremont".
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont".
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        PROCESSOR_TREMONT.
        * config/i386/i386.c (m_TREMONT): Define.
        (processor_target_table): Add "tremont".
        (PTA_TREMONT): Define.
        (ix86_lea_outperforms): Add TARGET_TREMONT.
        (get_builtin_code_for_version): Handle PROCESSOR_TREMONT.
        (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT
        and M_INTEL_GOLDMONT_PLUS.
        (fold_builtin_cpu): Add "tremont".
        (ix86_add_stmt_cost): Add TARGET_TREMONT.
        (ix86_option_override_internal): Add "tremont".
        * config/i386/i386.h (processor_costs): Define TARGET_TREMONT.
        (processor_type): Add PROCESSOR_TREMONT.
        * config/i386/x86-tune.def: Add m_TREMONT.
        * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type.

gcc/testsuite/

        * gcc.target/i386/funcspec-56.inc: Test arch=tremont.

libgcc/

        * config/i386/cpuinfo.h (processor_types): Add INTEL_TREMONT.

From-SVN: r261270
2018-06-07 13:07:05 +02:00
Jozef Lawrynowicz cef87b05f2 msp430.c (msp430_mcu_name): Set the "i" in the symbol defined for msp430i* devices to be lower case.
* gcc/config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the
	symbol defined for msp430i* devices to be lower case.

	gcc/testsuite/gcc.target/msp430/
	* msp430i-device-symbol.c: New test.
	* msp430f-device-symbol.c: New test.
	* msp430.h: New test header file.

From-SVN: r261268
2018-06-07 10:09:42 +00:00
Richard Biener fa8ce18938 graphite-sese-to-poly.c (extract_affine): Avoid unneded wrapping.
2018-06-07  Richard Biener  <rguenther@suse.de>

	* graphite-sese-to-poly.c (extract_affine): Avoid unneded
	wrapping.  Properly wrap the result of a BIT_NOT_EXPR.
	Properly wrap signed arithmetic if overflow wraps.

From-SVN: r261267
2018-06-07 09:48:31 +00:00
Jonathan Wakely c962b2c36f Default special members of regex types and add noexcept
* include/bits/regex.h (sub_match): Add noexcept to default
	constructor and length observer.
	(match_results): Add noexcept to default constructor and observers
	with no preconditions. Define destructor as defaulted.
	(operator==, operator!=, swap): Add noexcept.
	(regex_iterator): Add default member initializers and define default
	constructor and destructor as defaulted. Add noexcept to equality
	and dereference operators.

From-SVN: r261266
2018-06-07 09:56:45 +01:00
Jakub Jelinek ca6b7410dd re PR tree-optimization/69615 (0 to limit signed range checks don't always use unsigned compare)
PR tree-optimization/69615
	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs
	of a cast from a same precision integral SSA_NAME in a bb dominated
	by first_bb, retry with rhs2 set to the rhs1 of the cast.  Don't emit
	cast to utype if rhs2 has already a compatible type.

	* gcc.dg/tree-ssa/pr69615.c: New test.

From-SVN: r261264
2018-06-07 09:41:18 +02:00
Richard Biener b2bf825892 re PR tree-optimization/85935 ([graphite] ICE in extract_affine, at graphite-sese-to-poly.c:287)
2018-06-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/85935
	* graphite-scop-detection.c (find_params_in_bb): Analyze
	condition operands with respect to the correct loop.  Assert
	the analysis doesn't fail.

	* gcc.dg/graphite/pr85935.c: New testcase.

From-SVN: r261263
2018-06-07 07:01:56 +00:00
François Dumont 7a205f505f 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
* src/c++11/debug.cc
	(_Safe_iterator_base::_M_detach()): Reset state only if needed.
	(_Safe_iterator_base::_M_detach_single()): Likewise.
	(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
	(_Safe_local_iterator_base::_M_detach_single()): Likewise.

From-SVN: r261262
2018-06-07 05:44:53 +00:00
Martin Liska 244aebfd6c Fix compilation of libgcov with GCOV_LOCKED=0.
2018-06-07  Martin Liska  <mliska@suse.cz>

	* libgcov-driver.c: Rename cs_all to all and assign it from
        all_prg.

From-SVN: r261261
2018-06-07 04:23:16 +00:00
Martin Liska 6c086e8c75 Fix libgcov-driver-system bootstrap failure (PR bootstrap/86057).
2018-06-07  Martin Liska  <mliska@suse.cz>

        PR bootstrap/86057
	* libgcov-driver-system.c (replace_filename_variables): Use
        memcpy instead of mempcpy.
	(allocate_filename_struct): Do not allocate filename, allocate
        prefix and set it.
	(gcov_exit_open_gcda_file): Allocate memory for gf->filename
        here and properly copy content into it.
	* libgcov-driver.c (struct gcov_filename): Remove max_length
        field, change prefix from size_t into char *.
	(compute_summary): Do not calculate longest filename.
	(gcov_do_dump): Release memory of gf.filename after each file.
	* libgcov-util.c (compute_summary): Use new signature of
        compute_summary.
	(calculate_overlap): Likewise.

From-SVN: r261260
2018-06-07 04:21:35 +00:00
GCC Administrator 37777cd033 Daily bump.
From-SVN: r261259
2018-06-07 00:16:22 +00:00
Carl Love 029435a303 vsx.md (first_match_index_<mode>): Calculate index using natural element order.
gcc/ChangeLog:

2018-06-04  Carl Love  <cel@us.ibm.com>

	* gcc/config/rs6000/vsx.md (first_match_index_<mode>): Calculate index
	using natural element order.  Use gen_lshrsi3 instead of gen_ashrsi3
	as it is slightly cheaper.
	(first_match_or_eos_index_<mode>):
	Calculate index using natural element order.
	(first_match_index_<mode>):
	Calculate index using natural element order.
	(first_match_or_eos_index_<mode>):
	Calculate index using natural order.
	(define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>.
	for BE and LE modes.
	* gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB,
	P9V_BUILTIN_VCLZLSBB_V16QI.
	* gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode
	specific.

gcc/testsuite/ChangeLog:

2018-06-04  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-8-p9-runnable.c: Add additional
	debug print statements.  Fix a few formating issues.

From-SVN: r261255
2018-06-06 23:16:06 +00:00
Kelvin Nilsen 20f136afaf extend.texi (PowerPC AltiVec Built-in Functions): Adjust indentation and line wrap for many prototypes.
gcc/ChangeLog:

2018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
	indentation and line wrap for many prototypes.  Add missing
	@smallexample directives around block of prototypes for vec_xl and
	vec_xst.

From-SVN: r261254
2018-06-06 23:03:35 +00:00
Michael Meissner f0e5e94235 re PR target/85657 (Make __ibm128 a separate type, even if long double uses the IBM double-double format)
[gcc]
2018-06-06  Michael Meissner  <meissner@linux.ibm.com>

	PR target/85657
	* config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper
	macro for __ibm128 built-in functions.
	(PACK_IF): Add __ibm128 pack/unpack functions.
	(UNPACK_IF): Likewise.
	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not
	enable long double built-in functions if long double is IEEE
	128-bit floating point.
	(rs6000_invalid_builtin): Update long double built-in function
	error message.
	(rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in
	functions, adjust the built-in function to use the long double
	built-in function if __ibm128 and long double are the same type.
	* doc/extend.texi (PowerPC builtins): Update documention for
	__builtin_{,un}pack_longdouble.  Add documentation for
	__builtin_{,un}pack_ibm128.

[gcc/testsuite]
2018-06-06  Michael Meissner  <meissner@linux.ibm.com>

	PR target/85657
	* gcc.target/powerpc/pr85657-4.c: New tests.
	* gcc.target/powerpc/pr85657-5.c: Likewise.
	* gcc.target/powerpc/pr85657-6.c: Likewise.

From-SVN: r261253
2018-06-06 22:54:17 +00:00
Carl Love a983358b0e builtins-7-p9-runnable.c: Change first argument to vui_arg.
gcc/testsuite/ChangeLog:

2018-06-06  Carl Love  <cel@us.ibm.com>
	* gcc.target/powerpc/builtins-7-p9-runnable.c: Change first
	argument to vui_arg.

From-SVN: r261249
2018-06-06 21:46:26 +00:00
Thomas Koenig 9658d116f3 re PR fortran/85641 (ICE with string concatenate)
2018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/85641
	* frontend-passes.c (is_fe_temp): Add prototype.
	(realloc_string_callback): Early return for frontend-generated
	temporary.

2018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/85641
	* gfortran.dg/realloc_on_assign_30.f90: New test.

From-SVN: r261248
2018-06-06 21:41:29 +00:00
Carl Love c63f44a8d7 builtins-3.c: Move tests requiring -mvsx to builtins-4.c.
gcc/testsuite/ChangeLog:

2018-06-06  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-3.c: Move tests requiring -mvsx
	to builtins-4.c.
	* gcc.target/powerpc/builtins-4.c: New test file for tests
	that need -mvsx.

From-SVN: r261247
2018-06-06 21:38:49 +00:00
Michael Meissner c765c8cb73 re PR target/85657 (Make __ibm128 a separate type, even if long double uses the IBM double-double format)
[gcc]
2018-06-06  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
	track if we pass or return IEEE 128-bit floating point.
	(ieee128_mangling_gcc_8_1): New boolean to say whether to generate
	C++ mangling that is compatible with GCC 8.1.
	(TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
	(init_cumulative_args): Note if we pass or return IEEE 128-bit
	floating point types.
	(rs6000_function_arg_advance_1): Likewise.
	(rs6000_mangle_type): Optionally generate mangled names that match
	what GCC 8.1 generated for IEEE 128-bit floating point types.
	(rs6000_globalize_decl_name): If we have an external function that
	passes or returns IEEE 128-bit types, generate a weak reference
	from the mangled name used in GCC 8.1 to the current mangled
	name.

[gcc]
2018-06-05  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_init_builtins): Make __ibm128 use
	the long double type if long double is IBM extended double.  Make
	__float128 use the long double type if long double is IEEE 128-bit.

[gcc/testsuite]
2018-06-05  Michael Meissner  <meissner@linux.ibm.com>

	PR target/85657
	* g++.dg/pr85657.C: Only test whether __ibm128 and long double can
	be used in templates.  Don't check for them in overloaded functions.

From-SVN: r261246
2018-06-06 21:11:15 +00:00
Jonathan Wakely 9d67f13e6a Remove redundant std::move on const object
* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
	move of const value.

From-SVN: r261245
2018-06-06 20:39:27 +01:00
Jim Wilson ec74725ce3 RISC-V: Add interrupt attribute modes.
gcc/
	* config/riscv/riscv.c (enum riscv_privilege_levels): New.
	(struct machine_function): New field interrupt_mode.
	(riscv_handle_type_attribute): New function.  Add forward declaration.
	(riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute.
	(riscv_expand_epilogue): Check interrupt_mode field.
	(riscv_set_current_function): Check interrupt attribute args and
	set interrupt_mode field.
	* config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New.
	(riscv_sret, riscv_uret): New.
	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document
	new arguments to interrupt attribute.

	gcc/testsuite/
	* gcc.target/riscv/interrupt-5.c (sub3): Add new test.
	* gcc.target/riscv/interrupt-mmode.c: New.
	* gcc.target/riscv/interrupt-smode.c: New.
	* gcc.target/riscv/interrupt-umode.c: New.

From-SVN: r261244
2018-06-06 12:08:36 -07:00
Peter Bergner 1b58c736db re PR target/63177 (Powerpc no-vfa-vect-depend-2.c and no-vfa-vect-depend-3.c failures)
PR target/63177
	* /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
	Don't handle -mcpu=power8 if -mpower9-vector is also used.

From-SVN: r261243
2018-06-06 13:40:53 -05:00
Jakub Jelinek fe16acf26b re PR c++/86068 (__cpp_transactional_memory is 210500)
PR c++/86068
	* c-cppbuiltin.c (c_cpp_builtins): Fix a typo, set
	__cpp_transactional_memory to 201500 instead of 210500.

	* include/bits/c++config: Check __cpp_transactional_memory >= 201500L
	rather than __cpp_transactional_memory >= 201505L.

From-SVN: r261242
2018-06-06 19:55:39 +02:00
Marek Polacek e58c9d921d re PR c++/85977 (Incorrect handling of array reference size deduction)
PR c++/85977
	* pt.c (unify): If ELTTYPE has no deducible template parms, skip
	deduction from the list elements.
	(type_unification_real): Check convertibility of list elements.

	* g++.dg/cpp0x/initlist102.C: New test.
	* g++.dg/cpp0x/initlist103.C: New test.
	* g++.dg/cpp0x/initlist104.C: New test.

From-SVN: r261241
2018-06-06 17:51:19 +00:00
Jason Merrill b66ec0c032 PR c++/86060 - ICE on range for with -std=c++98.
* parser.c (cp_parser_init_statement): Don't clobber *decl after
	pedwarn.

From-SVN: r261239
2018-06-06 13:47:48 -04:00
Jason Merrill 4dbdb49b1b PR c++/85710 - ICE with -Wmemset-elt-size.
c-family/
	* c-warn.c (warn_for_memset): Don't crash on incomplete element type.
cp/
	* semantics.c (finish_call_expr): Call warn_for_memset here.
	* parser.c (cp_parser_postfix_expression): Not here.
	(literal_integer_zerop): No longer static.
	* pt.c (build_non_dependent_expr): Don't wrap CONST_DECL.

From-SVN: r261238
2018-06-06 11:14:12 -04:00
Ian Lance Taylor 1d6ccc5f29 reflect: fix StructOf hash and string
Adjust the hash and string fields computed by StructOf to match the
    values that the compiler computes for a struct type with the same
    field names and types.  This makes the reflect code match the
    compiler's Type::hash_for_method and Type::reflection methods.
    
    Fixes golang/go#25284
    
    Reviewed-on: https://go-review.googlesource.com/116515

From-SVN: r261235
2018-06-06 14:50:16 +00:00
Kelvin Nilsen 1336795a56 rs6000-builtin.def (VSX_BUILTIN_VEC_LD, [...]): Add comment to explain non-traditional uses.
gcc/ChangeLog:

2018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD,
	VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
	several redundant entries.

From-SVN: r261234
2018-06-06 14:46:29 +00:00
David Malcolm 2a559b8c77 ix86_expand_call: convert return type to rtx_insn *
Eliminate an "as_a <rtx_insn *>()" cast.

gcc/ChangeLog:
	* config/i386/i386-protos.h (ix86_expand_call): Strengthen return
	type from "rtx" to "rtx_insn *".
	* config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise
	for local "call_insn", removing cast.
	(ix86_expand_call): Likewise, introducing a "call_insn" local.

From-SVN: r261233
2018-06-06 13:33:08 +00:00
Eric Botcazou 31a5d8c538 re PR tree-optimization/86066 (wrong code for bit-field manipulation at -Os)
PR tree-optimization/86066
	* gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR
	for BIT_INSERT_EXPR stores.

From-SVN: r261232
2018-06-06 13:13:24 +00:00
Richard Biener 1abc0f7f52 re PR tree-optimization/86062 (Missed redundancy elimination with struct and array)
2018-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86062
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary
	component refs ontop
	of to be offsetted base.

	* g++.dg/tree-ssa/pr86062.C: New testcase.

From-SVN: r261231
2018-06-06 13:03:29 +00:00
Jozef Lawrynowicz d71488c017 MSP430: Allow interrupt handlers to be static
* gcc/config/msp430/msp430.c (msp430_attr): Allow interrupt handlers
	to be static and remove check on interrupt attribute name.

	gcc/testsuite/gcc.target/msp430/
	* function-attributes-4.c: New test.
	* static-interrupts.c: New test.

From-SVN: r261229
2018-06-06 11:49:20 +00:00
Jonathan Wakely 7db54ccd8a PR libstdc++/86008 add std::quoted support for string_view
PR libstdc++/86008
	* include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
	Define new partial specialization.
	* include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
	new overload.
	(operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
	value not reference for iteration.
	* testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
	comment.
	* testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
	* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
	comment.

From-SVN: r261227
2018-06-06 07:05:07 +01:00
GCC Administrator 5ae566b665 Daily bump.
From-SVN: r261226
2018-06-06 00:16:31 +00:00
Kelvin Nilsen 723659962a extend.texi (PowerPC AltiVec Built-in Functions): Remove volatile qualifier from vec_lvsl and vec_lvsr argument prototypes.
gcc/ChangeLog:

2018-06-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
	volatile qualifier from vec_lvsl and vec_lvsr argument prototypes.

From-SVN: r261220
2018-06-05 22:57:07 +00:00
Steve Ellcey aec530ac44 re PR target/79924 (aarch64: untranslated diagnostics in aarch64_err_no_fpadvsimd)
2018-06-05  Steve Ellcey  <sellcey@cavium.com>

	PR target/79924
	* gcc.target/aarch64/mgeneral-regs_1.c: Update error message.
	* gcc.target/aarch64/mgeneral-regs_2.c: Ditto.
	* gcc.target/aarch64/mgeneral-regs_3.c: Ditto.
	* gcc.target/aarch64/nofp_1.c: Ditto.

From-SVN: r261218
2018-06-05 22:21:36 +00:00
Steve Ellcey fc29dfc9e4 re PR target/79924 (aarch64: untranslated diagnostics in aarch64_err_no_fpadvsimd)
2018-06-05  Steve Ellcey  <sellcey@cavium.com>

	PR target/79924
	* config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove
	second argument.
	* config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd):
	Remove second argument, change how error is called.
	(aarch64_layout_arg): Remove second argument from
	aarch64_err_no_fpadvsimd call.
	(aarch64_init_cumulative_args): Ditto.
	(aarch64_gimplify_va_arg_expr): Ditto.
	* config/aarch64/aarch64.md (mov<mode>): Ditto.

From-SVN: r261217
2018-06-05 22:20:13 +00:00
Ian Lance Taylor e0b195b58a reflect: canonicalize types returned by StructOf() and friends
Background: since gccgo does not currently merge identical types at link time,
    the reflect function canonicalize() exists to choose a canonical specimen
    for each set of identical types.
    In this way, user code has the guarantee that identical types
    will always compare as ==
    
    Change: arrange reflect functions MapOf(), SliceOf(), StructOf() etc.
    to call canonicalize() on the types they create, before storing the types
    in internal lookup caches and returning them.
    
    This fixes known cases where canonicalize() is needed but was missing.
    Supersedes https://golang.org/cl/112575 and mostly fixes issue 25284.
    
    Updates golang/go#25284
    
    Reviewed-on: https://go-review.googlesource.com/115577

From-SVN: r261216
2018-06-05 20:23:40 +00:00
Uros Bizjak 6d02e2d960 ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r261210
2018-06-05 20:18:18 +02:00
Uros Bizjak 9c5913b3c2 i386.md (simple_return_indirect_internal): New expander.
* config/i386/i386.md (simple_return_indirect_internal): New expander.
	(*simple_return_indirect_internal<mode>): Rename from
	simple_return_indirect_internal.  Use W mode iterator.
	(rstorssp): New expander.
	(*rstorssp<mode>): Rename from rstorssp.  Use P mode iterator.
	(clrssbsy): New expander.
	(*clrssbsy<mode>): Rename from clrssbsy.  Use P mode iterator.

From-SVN: r261208
2018-06-05 20:04:07 +02:00
Andre Vieira 9063f9ed9c [arm] Make arm_cmse.h C99 compatible
gcc/ChangeLog
2018-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to
	__typeof__.
	(cmse_check_pointed_object): Likewise.

gcc/testsuite/ChangeLog
2018-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.target/arm/cmse/cmse-1c99.c: New test.

From-SVN: r261204
2018-06-05 15:07:09 +00:00
Cesar Philippidis ab44754ea2 re PR fortran/85701 ([openacc] ICE in mark_scope_block_unused, at tree-ssa-live.c:364)
PR fortran/85701

	gcc/fortran/
	* openmp.c (gfc_resolve_oacc_declare): Error on functions and
	subroutine data clause arguments.

	gcc/testsuite/
	* gfortran.dg/goacc/pr85701.f90: New test.

From-SVN: r261202
2018-06-05 06:58:50 -07:00
Richard Biener f115c9b536 lto.c (cmp_type_location): Expand locations only once.
2018-06-05  Richard Biener  <rguenther@suse.de>

	* lto.c (cmp_type_location): Expand locations only once.

From-SVN: r261201
2018-06-05 13:42:57 +00:00
Marek Polacek 05f9a806ee re PR c++/85976 (ICE in cp_tree_equal when building Blitz. May be nested templates.)
PR c++/85976
	* tree.c (cp_tree_equal): Handle USING_DECL.

	* g++.dg/cpp0x/alias-decl-64.C: New test.

From-SVN: r261200
2018-06-05 13:11:00 +00:00
Martin Liska 97a53d1d04 Support variables in expansion of -fprofile-generate option (PR gcov-profile/47618).
2018-06-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/47618
	* doc/invoke.texi: Document how -fprofile-dir format
        is extended.
2018-06-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/47618
	* libgcov-driver-system.c (replace_filename_variables): New
        function.
	(gcov_exit_open_gcda_file): Use it.

From-SVN: r261199
2018-06-05 12:10:22 +00:00
Jason Merrill 066c4268db PR c++/85731 - wrong error with qualified-id in template.
* semantics.c (finish_qualified_id_expr): build_qualified_name
	for unbound names in the current class.

From-SVN: r261196
2018-06-05 07:27:12 -04:00
Richard Biener b401e50fed tree-cfgcleanup.c (cleanup_control_flow_pre): For edge removal pretend DOM info isn't available so we do not update it and...
2018-06-05  Richard Biener  <rguenther@suse.de>

	* tree-cfgcleanup.c (cleanup_control_flow_pre): For edge
	removal pretend DOM info isn't available so we do not update
	it and only remove edges, not dominated blocks.  Actually free
	DOM info in case we removed something.  Remove unreachable blocks.
	(mfb_keep_latches): Work with either DOM info or marked backedges.
	(cleanup_tree_cfg_noloop): Do not remove unreachable blocks
	first.  Mark backedges if DOM info isn't available.
	(Re-)compute DOM info after cleanup_control_flow_pre.

From-SVN: r261195
2018-06-05 11:11:16 +00:00
Richard Biener 62761a0f88 tree-cfg.c (struct locus_discrim_map): Store line, not location.
2018-06-05  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (struct locus_discrim_map): Store line, not location.
	(locus_discrim_hasher::hash): Adjust.
	(locus_discrim_hasher::equal): Likewise.
	(next_discriminator_for_locus): Work on line directly.
	(same_line_p): Pass in expanded locus1 as well.
	(assign_discriminators): Avoid redundant location expansions.

From-SVN: r261194
2018-06-05 11:10:25 +00:00
Richard Biener fa385ff4d7 re PR c/86046 (ICE in execute_todo, at passes.c:2043)
2018-06-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86046
	* tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P
	if required after clearing TREE_ADDRESSABLE.

	* gcc.dg/pr86046.c: New testcase.

From-SVN: r261193
2018-06-05 10:02:50 +00:00
Richard Biener d12fd774e0 re PR tree-optimization/86047 (ICE in for_each_index, at tree-ssa-loop.c:647)
2018-06-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86047
	* tree-ssa-loop.c (for_each_index): Glob handling of all
	decls and constants and really handle all of them.

	* gcc.dg/pr86047.c: New testcase.

From-SVN: r261192
2018-06-05 10:01:49 +00:00
Kyrylo Tkachov 12b2b9103a [arm] PR target/81497: Fix arm_acle.h for C++
When trying to compile something with arm_acle.h using G++ we get a number of nasty errors:
arm_acle.h:48:49: error: invalid conversion from ‘const void*’ to ‘const int*’ [-fpermissive]
    return __builtin_arm_ldc (__coproc, __CRd, __p);

This is because the intrinsics that are supposed to be void return the "result" of their builtin,
which is void. C lets that slide but C++ complains.

After fixing that we run into further errors:
arm_acle.h:48:46: error: invalid conversion from 'const void*' to 'const int*' [-fpermissive]
    return __builtin_arm_ldc (__coproc, __CRd, __p);
                                               ^~~
Because the pointer arguments in these intrinsics are void pointers but the builtin
expects int pointers. So this patch introduces new qualifiers for void pointers and their
const-qualified versions and uses that in the specification of these intrinsics.

This gives us the opportunity of creating an arm subdirectory in g++.dg and inaugurates it
with the first arm-specific C++ tests (in that directory).


	PR target/81497
	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
	qualifier_void_pointer and qualifier_const_void_pointer.
	(arm_ldc_qualifiers, arm_stc_qualifiers): Use the above.
	(arm_init_builtins): Handle the above.
	* config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc,
	__arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2,
	__arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for
	void intrinsics.

	* g++.target/arm/arm.exp: New file.
	* g++.target/arm/pr81497.C: Likewise.

From-SVN: r261191
2018-06-05 09:50:16 +00:00