Commit Graph

164749 Commits

Author SHA1 Message Date
Jason Merrill 4be5c72cf3 Implement P0732R2, class types in non-type template parameters.
There is one significant piece of this that is not implemented yet: the
reliance on defaulted operator<=>, which someone else has been working on.
So, for the moment those lines are commented out of the testcases.

One tricky bit was treating template parameters of classtype as const
lvalues without making their decltype const; for this I used a
VIEW_CONVERT_EXPR wrapper, which previously could only appear in templates
as location wrappers.

The user-defined literal parts of P0732R2 are in the next patch.

gcc/cp/
	* error.c (dump_simple_decl): Look through a template parm object.
	* mangle.c (write_template_arg): Likewise.
	(mangle_template_parm_object): New.
	* pt.c (template_parm_object_p, get_template_parm_object): New.
	(invalid_tparm_referent_p): Factor from convert_nontype_argument.
	(convert_nontype_argument, invalid_nontype_parm_type_p): Handle
	class-type template arguments.
	* tree.c (lvalue_kind): Likewise.
gcc/c-family/
	* c-cppbuiltin.c (c_cpp_builtins): Add
	__cpp_nontype_template_parameter_class.
libiberty/
	* cp-demangle.c (d_dump, d_make_comp, d_count_templates_scopes)
	(d_print_comp_inner): Handle DEMANGLE_COMPONENT_TPARM_OBJ.
	(d_special_name): Handle TA.
	(d_expresion_1): Fix demangling of brace-enclosed initializer list.
include/
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_TPARM_OBJ.

From-SVN: r265789
2018-11-05 02:47:02 -05:00
Jason Merrill 5dab8b11c4 Fix various latent issues revealed by P0732 work.
The initialized_type hunk fixes handling of void AGGR_INIT_EXPRs that call a
non-constructor; an AGGR_INIT_EXPR can have void type if its initialization
semantics are more complicated than just expanding the call.

The cxx_eval_vec_init_1 hunk corrects AGGR_INIT_EXPRs that were
nonsensically built to initialize an object of void type.  And the
build_aggr_init_expr hunk makes sure we don't do that again.

The ocp_convert and cxx_eval_outermost_constant_expr hunks deal with making
sure that a constant CONSTRUCTOR has the right type.

	* cvt.c (ocp_convert): Don't wrap a CONSTRUCTOR in a NOP_EXPR.
	* constexpr.c (initialized_type): Fix AGGR_INIT_EXPR handling.
	(cxx_eval_vec_init_1): Correct type of AGGR_INIT_EXPR.
	(cxx_eval_outermost_constant_expr): Make sure a CONSTRUCTOR has the
	right type.  Don't wrap a CONSTRUCTOR if one was passed in.
	* tree.c (build_aggr_init_expr): Check for void.

From-SVN: r265788
2018-11-05 02:46:57 -05:00
Jason Merrill c24c8a4b00 PR c++/60503 - wrong lambda attribute syntax.
This patch fixes two issues with lambda attribute handling: First, it was in
the wrong place in the grammar.  Second, it was treating attributes as
applying to the whole declaration rather than to the function type, as
specified by the standard.

	* parser.c (cp_parser_lambda_declarator_opt): Fix attribute
	handling.

From-SVN: r265787
2018-11-05 02:46:52 -05:00
Martin Liska ac27459299 Remove options that are not disabled with -Os (PR web/87829).
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR web/87829
	* doc/invoke.texi: Remove options that are
	not disabled with -Os.

From-SVN: r265786
2018-11-05 07:33:58 +00:00
Martin Liska c3210c96bc Verify that last argument of __builtin_expect_with_probability is a real cst (PR c/87811).
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR c/87811
	* predict.c (expr_expected_value_1): Verify
	that last argument is a real constants and emit
	error.
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR c/87811
	* gcc.dg/pr87811.c: New test.
	* gcc.dg/pr87811-2.c: Likewise.
	* gcc.dg/pr87811-3.c: Likewise.
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR c/87811
	* doc/extend.texi: Update constrain about the last argument
	of __builtin_expect_with_probability.

From-SVN: r265785
2018-11-05 07:33:30 +00:00
Martin Liska e53f77c666 Fix setting of hotness in non-LTO mode (PR gcov-profile/77698).
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/77698
	* ipa-profile.c (ipa_profile): Adjust hotness threshold
	only in LTO mode.
2018-11-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/77698
	* gcc.dg/tree-prof/pr77698.c: New test.

From-SVN: r265784
2018-11-05 07:32:48 +00:00
GCC Administrator 51020b00c7 Daily bump.
From-SVN: r265783
2018-11-05 00:16:57 +00:00
Iain Buclaw f9ab59ffe7 Merge dmd upstream 6243fa6d2
This introduces a new header that pulls in system includes for use only
in the DMD front-end part of the compiler, fixing up uses of problematic
functions that are prevalent throughout the code.

Commits merged from dmd.

    Fix build of the D frontend on the Hurd and KFreeBSD.
    Initial patch from Matthias Klose.
    https://github.com/dlang/dmd/pull/8893

    Don't care about D/C++ compatibility in C++ port.
    Fixes build error in https://gcc.gnu.org/PR87788
    https://github.com/dlang/dmd/pull/8895

    Allow compiling front-end headers with strict warnings.
    https://github.com/dlang/dmd/pull/8909

    Add root/system.h header for wrapping system includes.
    Fixes https://gcc.gnu.org/PR87865
    https://github.com/dlang/dmd/pull/8910

    Move checkedint to dmd/root.
    https://github.com/dlang/dmd/pull/8912

    Use rmem instead of libc for malloc() and strdup().
    https://github.com/dlang/dmd/pull/8913

    Use align(8) for alignment of UnionExp, fixing several BUS errors
    due to alignment issues on SPARC.
    https://github.com/dlang/dmd/pull/8914

    Don't pass NULL pointer as format parameter to errorSupplemental.
    https://github.com/dlang/dmd/pull/8916

gcc/d/ChangeLog:

2018-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87865
	* d-system.h: New file.

From-SVN: r265780
2018-11-04 23:34:44 +00:00
Bernd Edlinger e8bf3d5ed9 re PR tree-optimization/86572 (unsafe strlen folding of const arguments with non-const offset)
gcc:
2018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/86572
        * builtins.c (c_strlen): Handle negative offsets in a safe way.

testsuite:
2018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/86572
        * gcc.dg/pr86572.c: New test.

From-SVN: r265778
2018-11-04 19:51:09 +00:00
Bernd Edlinger 770fe3a364 re PR tree-optimization/87672 (81512c36 causes ICE in bootstrap stage 3 using "-D_FORTIFY_SOURCE=2" (invalid operand in unary operation, incorrect sharing of tree nodes, verify_gimple failed))
gcc:
2018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/87672
        * gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify.
        * tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size.

testsuite:
2018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/87672
        * gcc.dg/pr87672.c: New test.

From-SVN: r265777
2018-11-04 19:46:08 +00:00
Uros Bizjak e237f9f31d re PR c++/58372 (internal compiler error: ix86_compute_frame_layout)
PR middle-end/58372
	* cfgexpand.c (pass_expand::execute): Move the call to
	finish_eh_generation in front of the call to expand_stack_alignment.

testsuite/ChangeLog:

	PR middle-end/58372
	* g++.target/i386/pr58372.C: New test.

From-SVN: r265776
2018-11-04 20:22:50 +01:00
Venkataramanan Kumar 2901f42f4b Enable support for next generation AMD Zen CPU, via -march=znver2.
gcc/ChangeLog:
	* common/config/i386/i386-common.c (processor_alias_table): Add znver2 entry.
	* config.gcc (i[34567]86-*-linux* | ...): Add znver2.
	(case ${target}): Add znver2.
	* config/i386/driver-i386.c: (host_detect_local_cpu): Let
	-march=native recognize znver2 processors.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add znver2.
	* config/i386/i386.c (m_znver2): New definition.
	(m_ZNVER): New definition.
	(m_AMD_MULTIPLE): Includes m_znver2.
	(processor_cost_table): Add znver2 entry.
	(processor_target_table): Add znver2 entry.
	(get_builtin_code_for_version): Set priority for
	PROCESSOR_ZNVER2.
	(processor_model): Add M_AMDFAM17H_ZNVER2.
	(arch_names_table): Ditto.
	(ix86_reassociation_width): Include znver2. 
	* config/i386/i386.h (TARGET_znver2): New definition.
	(struct ix86_size_cost): Add TARGET_ZNVER2.
	(enum processor_type): Add PROCESSOR_ZNVER2.
	* config/i386/i386.md (define_attr "cpu"): Add znver2.
	* config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs.
	* config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2.
	(ix86_adjust_cost): Add znver2.
	* config/i386/x86-tune.def:  Replace m_ZNVER1 by m_ZNVER
	* gcc/doc/extend.texi: Add details about znver2.
	* gcc/doc/invoke.texi: Add details about znver2.

libgcc/ChangeLog
	* config/i386/cpuinfo.c: (get_amd_cpu): Add znver2.
	* config/i386/cpuinfo.h(processor_subtypes): Ditto.

From-SVN: r265775
2018-11-04 11:17:54 +00:00
Stafford Horne 45bf149026 MAINTAINERS (Write After Approval): Add myself.
2018-11-04  Stafford Horne  <shorne@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r265774
2018-11-04 09:07:48 +00:00
GCC Administrator c16ab1252a Daily bump.
From-SVN: r265773
2018-11-04 00:16:44 +00:00
Sandra Loosemore 2eae232fc5 re PR target/87079 (nios2 optimization for size - case of regression relatively to 5.3.0)
2018-11-03  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/87079

	gcc/
	* config/nios2/nios2.c (nios2_rtx_costs): Recognize <mul>sidi3
	pattern.

	gcc/testsuite/
	* gcc.target/nios2/pr87079-1.c: New.	
	* gcc.target/nios2/pr87079-2.c: New.

From-SVN: r265770
2018-11-03 14:12:44 -04:00
GCC Administrator b15ed67b3d Daily bump.
From-SVN: r265766
2018-11-03 00:17:46 +00:00
Thomas Koenig 0f4f85614b re PR fortran/46020 (Improve error string for BIND(C) diagnostic for len>1 character return type)
2018-11-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/46020
    * decl.c (verify_bind_c_sym): Remove unnecessary space
    in error message.

From-SVN: r265757
2018-11-02 20:20:43 +00:00
Rainer Orth 361420eec5 Move gcc.dg/compat dg-skip-if to *_main.c files
* gcc.dg/compat/pr83487-1_y.c: Move dg-skip-if ...
	* gcc.dg/compat/pr83487-1_main.c: ... here.
	* gcc.dg/compat/struct-by-value-10_main.c,
	gcc.dg/compat/struct-by-value-10_x.c,
	gcc.dg/compat/struct-by-value-11_main.c,
	gcc.dg/compat/struct-by-value-11_x.c,
	gcc.dg/compat/struct-by-value-12_main.c,
	gcc.dg/compat/struct-by-value-12_x.c,
	gcc.dg/compat/struct-by-value-13_main.c,
	gcc.dg/compat/struct-by-value-13_x.c,
	gcc.dg/compat/struct-by-value-14_main.c,
	gcc.dg/compat/struct-by-value-14_x.c,
	gcc.dg/compat/struct-by-value-15_main.c,
	gcc.dg/compat/struct-by-value-15_x.c,
	gcc.dg/compat/struct-by-value-17_main.c,
	gcc.dg/compat/struct-by-value-17_x.c,
	gcc.dg/compat/struct-by-value-18_main.c,
	gcc.dg/compat/struct-by-value-18_x.c,
	gcc.dg/compat/struct-by-value-2_main.c,
	gcc.dg/compat/struct-by-value-2_x.c,
	gcc.dg/compat/struct-by-value-22_main.c,
	gcc.dg/compat/struct-by-value-22_x.c,
	gcc.dg/compat/struct-by-value-3_main.c,
	gcc.dg/compat/struct-by-value-3_x.c,
	gcc.dg/compat/struct-by-value-4_main.c,
	gcc.dg/compat/struct-by-value-4_x.c,
	gcc.dg/compat/struct-by-value-5b_main.c,
	gcc.dg/compat/struct-by-value-5b_x.c,
	gcc.dg/compat/struct-by-value-6b_main.c,
	gcc.dg/compat/struct-by-value-6b_x.c,
	gcc.dg/compat/struct-by-value-6b_main.c,
	gcc.dg/compat/struct-by-value-7b_x.c,
	gcc.dg/compat/struct-by-value-7b_main.c,
	gcc.dg/compat/struct-by-value-8_main.c,
	gcc.dg/compat/struct-by-value-8_x.c,
	gcc.dg/compat/struct-by-value-9_main.c,
	gcc.dg/compat/struct-by-value-9_x.c,
	gcc.dg/compat/struct-return-2_main.c,
	gcc.dg/compat/struct-return-2_x.c: Likewise.

From-SVN: r265755
2018-11-02 19:18:31 +00:00
Aaron Sawdey 122d6c3655 rs6000-string.c (expand_strncmp_gpr_sequence): Pay attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN.
2018-11-02  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay
	attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN.

From-SVN: r265751
2018-11-02 12:02:38 -05:00
Richard Earnshaw 5f7dbaa0ad Although there's no fundamental reason why shrink wrapping and speculation tracking are incompatible...
Although there's no fundamental reason why shrink wrapping and
speculation tracking are incompatible, a phase-ordering requirement
(we need to do speculation tracking before the final basic block
clean-up) means that the shrink wrapping pass can undo some of the
changes the speculation tracking pass makes.  The result is that the
tracking, while still safe is less comprehensive than we really want.

So to keep things simple, and because the tracking code is quite
expensive anyway, it seems best to just disable that pass when we are
tracking speculative execution.

	 * config/aarch64/aarch64.c (aarch64_override_options): Disable
	 shrink-wrapping when -mtrack-speculation.

From-SVN: r265747
2018-11-02 13:36:31 +00:00
Richard Biener 4c998ca548 tree-ssa-coalesce.c (struct coalesce_list): Add obstack member.
2018-11-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-coalesce.c (struct coalesce_list): Add obstack member.
	(pop_cost_one_pair): Do not free pair.
	(pop_best_coalesce): Likewise.
	(create_coalesce_list): Initialize obstack.
	(delete_coalesce_list): Free obstack.
	(find_coalesce_pair): Obstack-allocate coalesce pairs.
	(add_cost_one_coalesce): Likewise.
	(struct live_track): Remove bitmap pointer indirections.
	(new_live_track): Adjust.
	(delete_live_track): Likewise.
	(live_track_remove_partition): Likewise.
	(live_track_add_partition): Likewise.
	(live_track_live_p): Likewise.
	(live_track_process_def): Likewise.
	(live_track_clear_base_vars): Likewise.

From-SVN: r265745
2018-11-02 11:29:50 +00:00
Nathan Sidwell 4155777d73 [C++ PATCH] refactor duplicate_decls
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00085.html
	gcc/cp/
	* decl.c (duplicate_decls): Refactor checks.
	gcc/testsuite/
	* g++.dg/lookup/crash6.C: Adjust error
	* g++.dg/parse/crash38.C: Likewise.

From-SVN: r265744
2018-11-02 11:12:43 +00:00
Rainer Orth 97f5962a05 Remove SPARC HAVE_AS_REGISTER_PSEUDO_OP
* configure.ac (gcc_cv_as_sparc_register_op): Remove.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sparc/sparc.c (sparc_output_scratch_registers): Remove
	HAVE_AS_REGISTER_PSEUDO_OP guard.
	* config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove
	!HAVE_AS_REGISTER_PSEUDO_OP support.
	(ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP
	guard.

From-SVN: r265743
2018-11-02 08:51:04 +00:00
Iain Buclaw ac67752d79 Fix libgphobos.spec in the wrong place with --enable-version-specific-runtime-libs
libphobos/ChangeLog:

2018-11-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87827
	* Makefile.in: Rebuild.
	* configure: Rebuild.
	* configure.ac: Properly set MULTISUBDIR.
	* d_rules.am: Set toolexecdir and toolexeclibdir.
	* libdruntime/Makefile.in: Rebuild.
	* m4/druntime.m4 (DRUNTIME_INSTALL_DIRECTORIES): Add
	--enable-version-specific-runtime-libs.
	* src/Makefile.in: Rebuild.
	* testsuite/Makefile.in: Rebuild.

From-SVN: r265742
2018-11-02 08:29:50 +00:00
Andreas Schwab db281b40e4 20010904-2.c: Fix last change.
* gcc.c-torture/execute/20010904-2.c: Fix last change.
* gcc.dg/Wattributes-10.c: Likewise.

From-SVN: r265741
2018-11-02 08:22:59 +00:00
Richard Biener ea7e39004f dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call with is_type_die.
2018-11-02  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call
	with is_type_die.

From-SVN: r265740
2018-11-02 07:55:49 +00:00
Richard Biener a412de9891 re PR tree-optimization/87776 (Compile time hog during RPO VN)
2018-11-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87776
	* tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges
	executable when iterating but running into rpo-vn-max-loop-depth
	and not eliding the iteration.

	* gcc.dg/torture/pr87776.c: New testcase.

From-SVN: r265739
2018-11-02 07:53:48 +00:00
GCC Administrator b413c24215 Daily bump.
From-SVN: r265738
2018-11-02 00:17:14 +00:00
Jan Hubicka bcd8b5e2bd tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of TYPE_DECL.
* tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of
	TYPE_DECL.

From-SVN: r265735
2018-11-01 23:29:27 +00:00
Marek Polacek 5d9a0e3b99 Implement P0846R0, ADL and function templates.
* decl.c (grokfndecl): Allow FUNCTION_DECL in assert.
	* lex.c (unqualified_fn_lookup_error): Handle TEMPLATE_ID_EXPR.
	* parser.c (cp_parser_postfix_expression): Do ADL for a template-name.
	(cp_parser_template_id): Give errors if parsing the template argument
	list didn't go well.  Allow FUNCTION_DECL in assert.
	(cp_parser_template_name): Consider a name to refer to a template if
	it is an unqualified-id followed by a <.  Don't return the identifier
	if the decl is a function and dependent.
	* pt.c (tsubst_copy) <case OVERLOAD>: Remove assert.

	* g++.dg/addr_builtin-1.C: Adjust dg-error.
	* g++.dg/cpp2a/fn-template1.C: New test.
	* g++.dg/cpp2a/fn-template10.C: New test.
	* g++.dg/cpp2a/fn-template11.C: New test.
	* g++.dg/cpp2a/fn-template12.C: New test.
	* g++.dg/cpp2a/fn-template13.C: New test.
	* g++.dg/cpp2a/fn-template14.C: New test.
	* g++.dg/cpp2a/fn-template15.C: New test.
	* g++.dg/cpp2a/fn-template16.C: New test.
	* g++.dg/cpp2a/fn-template2.C: New test.
	* g++.dg/cpp2a/fn-template3.C: New test.
	* g++.dg/cpp2a/fn-template4.C: New test.
	* g++.dg/cpp2a/fn-template5.C: New test.
	* g++.dg/cpp2a/fn-template6.C: New test.
	* g++.dg/cpp2a/fn-template7.C: New test.
	* g++.dg/cpp2a/fn-template8.C: New test.
	* g++.dg/cpp2a/fn-template9.C: New test.
	* g++.dg/parse/fn-template1.C: New test.
	* g++.dg/parse/fn-template2.C: New test.
	* g++.dg/parse/template19.C: Adjust dg-error.
	* g++.dg/template/pr61745.C: Add target to dg-error.

From-SVN: r265734
2018-11-01 22:10:31 +00:00
Aaron Sawdey 3af0c6bce5 rs6000-protos.h (rs6000_address_for_fpconvert): Remove prototype.
2018-11-01  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove
	prototype.
	* config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
	Combine with rs6000_address_for_fpconvert.
	(rs6000_address_for_fpconvert): Combine with
	rs6000_force_indexed_or_indirect_mem.
	(rs6000_expand_vector_init): Change function call from
	rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem.
	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Change call from
	rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem.
	(floatsi<mode>2_lfiwax_mem): Ditto.
	(floatunssi<mode>2_lfiwzx): Ditto.
	(floatunssi<mode>2_lfiwzx_mem): Ditto.
	(float<QHI:mode><FP_ISA3:mode>2): Ditto.
	(floatuns<QHI:mode><FP_ISA3:mode>2): Ditto.
	(fix_trunc<mode>si2_stfiwx): Ditto.
	(fixuns_trunc<mode>si2_stfiwx): Ditto.
	(float_<mode>si2_hw): Ditto.
	(floatuns_<mode>si2_hw): Ditto.
	* config/rs6000/vsx.md (*vsx_extract_si): Ditto.
	(vsx_splat_<mode>): Ditto.

From-SVN: r265733
2018-11-01 15:41:08 -05:00
Thomas Koenig 4b53b3475f re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2017-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/54613
    * gfortran.dg/findloc_1.f90: Actually commit.
    * gfortran.dg/findloc_2.f90: Actually commit.
    * gfortran.dg/findloc_3.f90: Actually commit.
    * gfortran.dg/findloc_4.f90: Actually commit.
    * gfortran.dg/findloc_5.f90: Actually commit.
    * gfortran.dg/findloc_6.f90: Actually commit.

From-SVN: r265732
2018-11-01 20:12:57 +00:00
Thomas Koenig 437725af7a re PR fortran/87782 (runtime error: load of value 1818451807, which is not a valid value for type 'expr_t')
2018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87782
	* frontend-passes.c (constant_string_length): If there is a
	substring with a length which cannot be reduced to a constant,
	return NULL.

From-SVN: r265730
2018-11-01 19:50:14 +00:00
Paul Thomas a5fbc2f36a re PR fortran/40196 ([F03] [F08] Type parameter inquiry (str%len, a%kind) and Complex parts (z%re, z%im))
2018-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40196
	* dependency.c (are_identical_variables): Return false if the
	inquiry refs are not the same.
	(gfc_ref_needs_temporary_p): Break on an inquiry ref.
	* dump_parse_tree.c (show_ref): Show the inquiry ref type.
	* expr.c (gfc_free_ref_list): Break on an inquiry ref.
	(gfc_copy_ref): Copy the inquiry ref types.
	(find_inquiry_ref): New function.
	(simplify_const_ref, simplify_ref_chain): Call it. Add new arg
	to simplify_ref_chain.
	(gfc_simplify_expr): Use the new arg in call to
	simplify_ref_chain.
	(gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on
	inquiry ref.
	(gfc_traverse_expr): Return true for inquiry ref.
	* frontend-passes.c (gfc_expr_walker): Break on inquiry ref.
	* gfortran.h : Add enums and union member in gfc_ref to
	implement inquiry refs.
	* intrinsic.c : Fix white nois.
	* match.c (gfc_match_assignment): A constant lavlue is an
	error.
	* module.c : Add DECL_MIO_NAME for inquiry_type and the mstring
	for inquiry_types.
	(mio_ref): Handle inquiry refs.
	* primary.c (is_inquiry_ref): New function.
	(gfc_match_varspec): Handle inquiry refs calling new function.
	(gfc_variable_attr): Detect inquiry ref for disambiguation
	with components.
	(caf_variable_attr): Treat inquiry and substring refs in the
	same way.
	* resolve.c (find_array_spec): ditto.
	(gfc_resolve_substring_charlen): If there is neither a charlen
	ref not an inquiry ref, return.
	(resolve_ref): Handle inqiry refs as appropriate.
	(resolve_allocate_expr): Entities with an inquiry ref cannot be
	allocated.
	* simplify.c (simplify_bound, simplify_cobound): Punt on
	inquiry refs.
	* trans-array.c (get_array_ctor_var_strlen): Break on inquiry
	ref.
	*trans-expr.c (conv_inquiry): New function.
	(gfc_conv_variable): Retain the last typespec to pass to
	conv_inquiry on detecting an inquiry ref.


2018-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40196
	* gfortran.dg/inquiry_part_ref_1.f08: New test.
	* gfortran.dg/inquiry_part_ref_2.f90: New test.
	* gfortran.dg/inquiry_part_ref_3.f90: New test.

From-SVN: r265729
2018-11-01 19:36:08 +00:00
Paul Koning da06a0e93f 20010904-1.c: Align 2 if pdp11.
* gcc.c-torture/execute/20010904-1.c: Align 2 if pdp11.
	* gcc.c-torture/execute/20010904-2.c: Ditto.
	* c-c++-common/builtin-arith-overflow-2.c: Skip if pdp11.
	* gcc.dg/Walloc-size-larger-than-4.c: Ditto.
	* gcc.dg/Walloc-size-larger-than-5.c: Ditto.
	* gcc.dg/Walloc-size-larger-than-6.c: Ditto.
	* gcc.dg/Walloc-size-larger-than-7.c: Ditto.
	* gcc.dg/Walloca-14.c: Ditto.
	* gcc.dg/Wlarger-than3.c: Ditto.
	* gcc.dg/compat/pr83487-1_y.c: Ditto.
	* gcc.dg/compat/struct-by-value-2_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-3_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-4_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-5b_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-6b_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-7b_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-8_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-9_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-10_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-11_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-12_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-13_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-14_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-15_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-16_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-17_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-18_x.c: Ditto.
	* gcc.dg/compat/struct-by-value-22_x.c: Ditto.
	* gcc.dg/compat/struct-return-2_x.c: Ditto.
	* gcc.dg/falign-labels-1.c: Ditto.
	* gcc.dg/long_branch.c: Ditto.
	* gcc.dg/nextafter-1.c: Ditto.
	* gcc.dg/pr35045.c: Ditto.
	* gcc.dg/pr48616.c: Ditto.
	* gcc.dg/pr84100.c: Ditto.
	* gcc.dg/tree-ssa/builtin-sprintf-9.c: Ditto.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Ditto.
	* gcc.dg/tree-ssa/builtin-sprintf.c: Ditto.
	* gcc.dg/Wattributes-10.c: Expect error if pdp11.
	* gcc.dg/attr-alloc_size-11.c: Don't XFAIL if pdp11.
	* gcc.dg/builtin-inf-1.c: Add pdp11 to warnings about INF.
	* gcc.dg/builtins-1.c: Ditto.

From-SVN: r265728
2018-11-01 14:59:40 -04:00
Thomas Koenig c92e96fa1a re PR fortran/46020 (Improve error string for BIND(C) diagnostic for len>1 character return type)
2018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/46020
    * gfortran.dg/bind_c_18.f90: Adjust error message.

From-SVN: r265727
2018-11-01 18:41:28 +00:00
Paul Koning 4310ca662a t-pdp11 (LIB2ADD): Add divmod.c.
* config/pdp11/t-pdp11 (LIB2ADD): Add divmod.c.
	(HOST_LIBGCC2_CFLAGS): Change to optimize for size.

From-SVN: r265726
2018-11-01 14:36:52 -04:00
Marek Polacek d3db0b3ba7 * g++.dg/cpp1z/constexpr-lambda22.C: New test,
From-SVN: r265725
2018-11-01 18:29:44 +00:00
Joseph Myers d8b3b4f4b2 Avoid stray [] in ia64 assembler test.
Noted in <https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00034.html>.
Fix by adding extra newline in test input is analogous to many such
newlines added in cases where argument to a newly added AC_LANG_SOURCE
had a preprocessor directive on its last line.

	* configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline
	at end of assembler input text.
	* configure: Regenerate.

From-SVN: r265724
2018-11-01 17:05:17 +00:00
Jozef Lawrynowicz 14408ada00 cunroll-13.c: Add missing cast from literal to int32.
2018-11-01  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* gcc.dg/tree-ssa/cunroll-13.c: Add missing cast from literal to int32.

From-SVN: r265723
2018-11-01 17:02:48 +00:00
Jan Hubicka 6d912664f4 tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of TYPE_DECL.
* tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of
	TYPE_DECL.

	* g++.dg/lto/pr84805_1.C: Update template.
	* g++.dg/lto/pr84805_0.C: Update template.
	* g++.dg/lto/pr84805_1b.C: Update template.
	* g++.dg/lto/pr84805_0b.C: Update template.

From-SVN: r265722
2018-11-01 13:03:28 +00:00
Jakub Jelinek 444cda7470 re PR tree-optimization/87826 (ubsan: gimple-ssa-store-merging.c:281)
PR tree-optimization/87826
	* gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is
	negative or larger or equal to type's precision.

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

From-SVN: r265720
2018-11-01 13:31:45 +01:00
Thomas Koenig 86ba9ce626 re PR fortran/46020 (Improve error string for BIND(C) diagnostic for len>1 character return type)
2018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/46020
	* decl.c (verify_bind_c_sym): Improve error message.

From-SVN: r265719
2018-11-01 12:00:59 +00:00
Thomas Koenig 45f159a0a0 re PR fortran/46020 (Improve error string for BIND(C) diagnostic for len>1 character return type)
2018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/46020
    * gfortran.dg/bind_c_usage_32.f90: Really commit.

From-SVN: r265717
2018-11-01 11:56:26 +00:00
Thomas Koenig 508da9f932 re PR fortran/46020 (Improve error string for BIND(C) diagnostic for len>1 character return type)
2018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/46020
    * gfortran.dg/bind_c_usage_7.f90: Adjust error message.
    * gfortran.dg/bind_c_usage_32.f90: New test.

From-SVN: r265716
2018-11-01 11:55:43 +00:00
Thomas Koenig ff5115e203 re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2018-10-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54613
	* gfortran.texi (File format of unformatted sequential files):
	Replace random comma with period.
	* intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu.
	(FINDLOC): Document.
	(MAXLOC): Add refrence to FINDLOC.
	(MINLOC): Likewise.

From-SVN: r265715
2018-11-01 11:37:08 +00:00
Nathan Sidwell 41f927f4a6 [ABI PATCH] static anonymous unions of function scope
https://gcc.gnu.org/ml/gcc-patches/2018-10/msg02076.html
	* cp-tree.h (struct lang_function): Delete x_local_names field.
	(struct lang_decl_base): Rename u2sel to spare.
	(struct lang_decl_min): Remove lang_decl_u2 union.  Keep access
	field.
	(LANG_DECL_U2_CHECK): Delete.
	(DECL_DISCRIMINATOR_P): Require function scope.
	(DECL_DISCRIMINATOR): Adjust.
	(DECL_DISCRIMINATOR_SET_P): Delete.
	(DECL_CAPTURED_VARIABLE, DECL_ACCESS, THUnK_VIRTUAL_OFFSET): Adjust.
	(local_classes): Don't declare.
	(determine_local_discriminator): Declare.
	* decl.c (push_local_name): Delete.
	(local_entities, determina_local_discrminator): New.
	(duplicate_decls): Copy DECL_ACCESS. Fix formatting.
	(cp_finish_decl): Use determine_local_discriminator.
	(save_function_data): Drop x_local_names.
	(finish_function): Drop local_names.
	* decl2.c (finish_anon_union): Use determine_local_disciminator.
	* mangle.c (write_unnamed_type_name): Use
	discriminator_for_local_entity.
	(local_class_index): Delete.
	(discriminator_for_local_entity): Reimplement.
	(write_local_name): Adjust discriminator code.
	* name-lookup.c (do_pushtag): Call determine_local_discrimiator.
	* semantics.c (finish_omp_threadprivate): Drop DECL_DISCRIMINATOR
	handling.
	* class.c (local_classes): Delete.
	(init_class_processing): Don't init it.

	* g++.dg/abi/anon5.C: New.

From-SVN: r265714
2018-11-01 11:18:06 +00:00
Jakub Jelinek 5de9d93189 re PR d/87824 (x86_64-linux multilib issues)
PR d/87824
	* lang.opt (Wpsabi): New option.

	* gdc.dg/simd.d: Add -Wno-psabi.
	* gdc.dg/compilable.d: Likewise.

From-SVN: r265713
2018-11-01 12:14:08 +01:00
Martin Liska ddd0d18c9c Make __PRETTY_FUNCTION__-like functions mergeable string csts (PR c++/64266).
2018-11-01  Martin Liska  <mliska@suse.cz>
	    Jason Merrill  <jason@redhat.com>

	PR c++/64266
	PR bootstrap/70422
	PR ipa/81277
	* cp-tree.h (DECL_FNAME_P): New macro.
	* decl.c (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
        DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
	(cp_finish_decl):
	* lambda.c (is_capture_proxy): Use DECL_FNAME_P.
	* pt.c (tsubst_expr): Handle DECL_PRETTY_FUNCTION_P.
2018-11-01  Martin Liska  <mliska@suse.cz>
	    Jason Merrill  <jason@redhat.com>

	PR c++/64266
	PR bootstrap/70422
	PR ipa/81277
	* g++.dg/cpp0x/constexpr-__func__2.C: Make it a compilation
	test.
	* g++.old-deja/g++.ext/pretty4.C: Remove as the run-time
	assumptions are not longer valid.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r265711
2018-11-01 09:19:31 +00:00
Ian Lance Taylor 964f78b7e7 go-gcc.cc (Gcc_backend::write_global_definitions): Don't call gimplify_function_tree.
* go-gcc.cc (Gcc_backend::write_global_definitions): Don't call
	gimplify_function_tree.  Instead call allocate_struct_function if
	necessary.

From-SVN: r265710
2018-11-01 04:21:16 +00:00