1. 14 Apr, 2019 6 commits
    • PR d/87799 Fix D build on windows hosts · 4d024c32
      PR d/87799
      * d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.
      * configure.ac: Remove d from unsupported languages on mingw and cygwin.
      * configure: Regenerate.
      
      From-SVN: r270349
      Johannes Pfau committed
    • Enable libphobos on Solaris 11/x86 · 7d31d331
      	toplevel:
      	* configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED.
      	* configure: Regenerate.
      
      	libphobos:
      	* configure.tgt (LIBPHOBOS_SUPPORTED): Default to no.
      	Set to yes explicitly.
      	* configure.ac: Handle --enable-libphobos.
      	(x86_64-*-solaris2.* | i?86-*-solaris2.*): Only mark supported
      	with gas.
      	(ENABLE_LIBPHOBOS): New conditional.
      	* configure: Regenerate.
      	* Makefile.am (SUBDIRS): Only set if ENABLE_LIBPHOBOS.
      	* Makefile.in: Regenerate.
      
      From-SVN: r270348
      Rainer Orth committed
    • Work around lack of dlpi_tls_modid before Solaris 11.5 · 235d1c46
      2019-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      	    Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	PR d/88150
      	* m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro.
      	* configure.ac: Use it.
      	Call AC_USE_SYSTEM_EXTENSIONS.
      	* configure: Regenerate.
      	* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
      	testsuite/Makefile.in: Regenerate.
      	* libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define.
      	* libdruntime/gcc/sections/elf_shared.d: Import gcc.config.
      	(scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use
      	dlpi_tls_modid.
      	[Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid.
      	Otherwise clear pdso._tlsMod, pdso._tlsSize.
      	(getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod.
      
      Co-Authored-By: Iain Buclaw <ibuclaw@gdcproject.org>
      
      From-SVN: r270347
      Rainer Orth committed
    • Work around Solaris ld bug linking __tls_get_addr on 64-bit x86 · ba838aa6
      	* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro.
      	* configure.ac: Call it.
      	* configure: Regenerate.
      	* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
      	testsuite/Makefile.in: Regenerate.
      	* src/libgphobos.spec.in (*link): Append OS_LINK_SPEC.
      
      From-SVN: r270346
      Rainer Orth committed
    • Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150) · 4d513120
      	PR d/88150
      	* libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set
      	to true.
      	Import core.sys.solaris.dlfcn, core.sys.solaris.link,
      	core.sys.solaris.sys.elf, core.sys.solaris.sys.link.
      	(dummy_ref): Declare.
      	(initSections): Initialize dummy_ref.
      	(getDependencies): Set strtab.
      	(handleForName): Don't dlclose handle.
      	(findDSOInfoForAddr): Set IterateManually.
      	(getprogname): Declare.
      	(progname): Use it.
      	* libdruntime/gcc/sections/package.d [Solaris]: Import
      	gcc.sections.elf_shared instead of gcc.sections.solaris.
      	* libdruntime/gcc/sections/solaris.d: Remove.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
      	gcc/sections/solaris.d.
      
      From-SVN: r270345
      Rainer Orth committed
    • Daily bump. · 77086e01
      From-SVN: r270344
      GCC Administrator committed
  2. 13 Apr, 2019 8 commits
    • libphobos: Move rt.sections modules to gcc.sections · 8b651828
      These modules depend on a mixture between how the compiler emits
      run-time module information, and what functions are exposed by the
      platform to inquire about loaded global and thread-local data sections.
      
      As the upstream implementation is written to work only with how the
      reference D compiler writes out data, much of what is present does not
      apply to the GCC D front-end.  So it has been moved to a non-upstream
      location in the source tree, where most of it will be rewritten once
      each port has been completed.
      
      The only tested module sections/elf_shared.d has been cleaned up so that
      all deprecated declarations have been removed, as well as the brittle
      module collision checking, which required bss_sections.c.  All other
      ports have been left unchanged apart from a commonizing of attributes.
      
      libphobos/ChangeLog:
      
      2019-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c.
      	(DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*.
      	* libdruntime/Makefile.in: Regenerate.
      	* libdruntime/gcc/sections/android.d: New file.
      	* libdruntime/gcc/sections/elf_shared.d: New file.
      	* libdruntime/gcc/sections/osx.d: New file.
      	* libdruntime/gcc/sections/package.d: New file.
      	* libdruntime/gcc/sections/solaris.d: New file.
      	* libdruntime/gcc/sections/win32.d: New file.
      	* libdruntime/gcc/sections/win64.d: New file.
      	* libdruntime/rt/bss_section.c: Remove.
      	* libdruntime/rt/sections.d: Publicly import gcc.sections.
      	* libdruntime/rt/sections_android.d: Remove.
      	* libdruntime/rt/sections_elf_shared.d: Remove.
      	* libdruntime/rt/sections_osx.d: Remove.
      	* libdruntime/rt/sections_solaris.d: Remove.
      	* libdruntime/rt/sections_win32.d: Remove.
      	* libdruntime/rt/sections_win64.d: Remove.
      
      From-SVN: r270341
      Iain Buclaw committed
    • * gcc.pot: Regenerate. · 151c5c0b
      From-SVN: r270340
      Jakub Jelinek committed
    • re PR target/89093 (C++ exception handling clobbers d8 VFP register) · 6cf58810
      	PR target/89093
      	* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
      	instead of strncmp when checking for thumb and arm.  Formatting fixes.
      
      	* gcc.target/arm/pr89093.c: New test.
      
      From-SVN: r270339
      Jakub Jelinek committed
    • re PR fortran/79842 (i18n: subword translation in "Can't use the same %smodule") · 91797170
      2019-04-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR fortran/79842
      	* module.c (gfc_use_module): use complete sentences.
      
      From-SVN: r270338
      Dominique d'Humieres committed
    • * gcc.pot: Regenerate. · 4b4f5ccd
      From-SVN: r270337
      Jakub Jelinek committed
    • compiler: improve type handling for string concat ops on constants · fdc59f56
          
          Resolve a small problem with concatenation of string constants: in a
          string concat X + Y where X has named type and Y has abstract string
          type, insure that the result has X's type, and disable folding if the
          both sides have a concrete type that does not match.
          
          Fixes golang/go#31412.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171797
      
      From-SVN: r270336
      Ian Lance Taylor committed
    • Daily bump. · b1593748
      From-SVN: r270335
      GCC Administrator committed
    • Uglify identifiers missed in previous commit(s) · 71905b8a
             * include/pstl/algorithm_impl.h: Uglify identfiers.
             * include/pstl/numeric_impl.h:  Uglify identfiers.
             * include/pstl/parallel_backend_tbb.h: Uglify identfiers.
      
      From-SVN: r270332
      Thomas Rodgers committed
  3. 12 Apr, 2019 26 commits
    • Commit a change missed in r270326: · 377c9e46
      gcc/c-family/ChangeLog:
      
      	PR c/88383
      	PR c/89288
      	PR c/89798
      	PR c/89797
      	* c-attribs.c (type_valid_for_vector_size): Detect excessively
      	large sizes.
      	(validate_attribute): Handle DECLs and expressions.
      	(has_attribute): Handle types referenced by expressions.
      	Avoid considering array attributes in ARRAY_REF expressions .
      
      From-SVN: r270331
      Martin Sebor committed
    • libphobos: Add subdir-objects to configure script. · d7e418a1
      Running autoreconf regenerates all files cleanly with autoconf2.69.
      
      libphobos/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects.
      	* configure: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      
      From-SVN: r270330
      Iain Buclaw committed
    • re PR c/89933 (ICE in merge_decls, at c/c-decl.c:2517) · 60a2c645
      	PR c/89933
      c/
      	* c-decl.c (merge_decls): When newdecl's type is its main variant,
      	don't try to remove it from the variant list, but instead assert
      	it has no variants.
      cp/
      	* decl.c (duplicate_decls): When newdecl's type is its main variant,
      	don't try to remove it from the variant list, but instead assert
      	it has no variants.
      testsuite/
      	* c-c++-common/pr89933.c: New test.
      
      From-SVN: r270329
      Jakub Jelinek committed
    • libphobos: Add target-zlib to top-level configure · bb50312e
      Removes the building of zlib from within libphobos, using instead the
      libz_convenience.a library.
      
      ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* configure.ac: Add target-zlib to target_libraries.
      	* configure: Regenerate.
      
      gcc/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* doc/install.texi: Document --with-target-system-zlib.
      
      libphobos/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ZLIB): Use
      	libz_convenience.a if not using system zlib.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.am: Remove ZLIB_CSOURCES and AM_CFLAGS.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      From-SVN: r270328
      Iain Buclaw committed
    • extend.texi (__builtin_has_attribute): Add a clarifying note. · 41fe51dd
      gcc/ChangeLog:
      	* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
      
      From-SVN: r270327
      Martin Sebor committed
    • PR c/88383 - ICE calling __builtin_has_attribute on a reference · 3fb82380
      PR c/88383 - ICE calling __builtin_has_attribute on a reference
      PR c/89288 - ICE in tree_code_size, at tree.c:865
      PR c/89798 - excessive vector_size silently accepted and truncated
      PR c/89797 - ICE on a vector_size (1LU << 33) int variable
      
      gcc/ChangeLog:
      
      	PR c/89797
      	* targhooks.c (default_vector_alignment): Avoid assuming
      	argument fits in SHWI.
      	* tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
      	a shift expression.
      	* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
      
      gcc/c-family/ChangeLog:
      
      	PR c/88383
      	PR c/89288
      	PR c/89798
      	PR c/89797
      	* c-attribs.c (type_valid_for_vector_size): Detect excessively
      	large sizes.
      	(validate_attribute): Handle DECLs and expressions.
      	(has_attribute): Handle types referenced by expressions.
      	Avoid considering array attributes in ARRAY_REF expressions .
      
      gcc/cp/ChangeLog:
      
      	PR c/88383
      	PR c/89288
      	* parser.c (cp_parser_has_attribute_expression): Handle assignment
      	expressions.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/88383
      	PR c/89288
      	PR c/89798
      	PR c/89797
      	* c-c++-common/attributes-1.c: Adjust.
      	* c-c++-common/builtin-has-attribute-6.c: New test.
      	* c-c++-common/builtin-has-attribute-7.c: New test.
      	* c-c++-common/builtin-has-attribute-4.c: Adjust expectations.
      	* c-c++-common/builtin-has-attribute-6.c: New test.
      	* c-c++-common/pr71574.c: Adjust.
      	* gcc.dg/pr25559.c: Adjust.
      	* gcc.dg/attr-vector_size.c: New test.
      
      From-SVN: r270326
      Martin Sebor committed
    • Avoid ICE on pmf{} in template. · 3d8695f5
      Now that we return the original CONSTRUCTOR from finish_compound_literal,
      the call to null_member_pointer_value_p in tsubst_copy_and_build was getting
      confused because the CONSTRUCTOR was still empty rather than a valid PMF
      value.
      
      	* call.c (null_member_pointer_value_p): Handle an empty CONSTRUCTOR
      	of PMF type.
      
      From-SVN: r270324
      Jason Merrill committed
    • re PR rtl-optimization/89965 (wrong code with -O -mtune=nano-x2 -fcaller-saves… · 76416d89
      re PR rtl-optimization/89965 (wrong code with -O -mtune=nano-x2 -fcaller-saves -fexpensive-optimizations -fno-tree-dce -fno-tree-ter)
      
      	PR rtl-optimization/89965
      	* dce.c: Include rtl-iter.h.
      	(struct check_argument_load_data): New type.
      	(check_argument_load): New function.
      	(find_call_stack_args): Check for loads from stack slots still tracked
      	in sp_bytes and punt if any is found.
      
      	* gcc.target/i386/pr89965.c: New test.
      
      From-SVN: r270323
      Jakub Jelinek committed
    • * config/mips/loongson-mmiintrin.h: Fix up #error message. · b2e77a37
      From-SVN: r270322
      Jakub Jelinek committed
    • re PR translation/90041 (Command line option without proper quoting in translation message) · 63b8a166
      	PR translation/90041
      	* exgettext: Print MissingArgError, UnknownError or Warn
      	*.opt argument using error or warning instead of _ to mark it
      	as gcc-internal-format.
      
      	* c.opt (-fhandle-exceptions): Use %< and %> around option names
      	in the Warn diagnostics.
      
      From-SVN: r270321
      Jakub Jelinek committed
    • PR c++/87603 - constexpr functions are no longer noexcept. · c46f1a17
      	* constexpr.c (is_sub_constant_expr): Remove unused function.
      	* cp-tree.h (is_sub_constant_expr): Remove declaration.
      	* except.c (check_noexcept_r): Don't consider a call to a constexpr
      	function noexcept.
      
      	* g++.dg/cpp0x/constexpr-noexcept.C: Adjust the expected result.
      	* g++.dg/cpp0x/constexpr-noexcept3.C: Likewise.
      	* g++.dg/cpp0x/constexpr-noexcept4.C: Likewise.
      	* g++.dg/cpp0x/constexpr-noexcept8.C: New test.
      	* g++.dg/cpp0x/inh-ctor32.C: Remove dg-message.
      	* g++.dg/cpp1y/constexpr-noexcept1.C: New test.
      
      From-SVN: r270320
      Marek Polacek committed
    • except.c (build_noexcept_spec): Use build_converted_constant_bool_expr instead… · cc3bae3d
      except.c (build_noexcept_spec): Use build_converted_constant_bool_expr instead of perform_implicit_conversion_flags.
      
      	* except.c (build_noexcept_spec): Use build_converted_constant_bool_expr
      	instead of perform_implicit_conversion_flags.
      
      	* g++.dg/cpp0x/noexcept30.C: Tweak dg-error.
      	* g++.dg/cpp0x/pr86397-1.C: Likewise.
      	* g++.dg/cpp0x/pr86397-2.C: Likewise.
      
      From-SVN: r270319
      Marek Polacek committed
    • invoke.texi (max-lto-streaming-paralellism): New --param. · 01c9d999
      
      	* doc/invoke.texi (max-lto-streaming-paralellism): New --param.
      
      From-SVN: r270318
      Jan Hubicka committed
    • params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. · 0c7f51e4
      
      	* params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
      	* lto.c (do_stream_out): rename to ...
      	(stream_out): ... this one; move original code to ...
      	(stream_out_partitions_1, stream_out_partitions): ... these new
      	functions.
      	(lto_wpa_write_files): Honnor lto_parallelism
      
      From-SVN: r270317
      Jan Hubicka committed
    • [testsuite][arm] Update warning prune regex · 22de32a1
      r269586 changed the format of some warning messages.
      
      Each switch in the warning message is now surrounded by single quotes.
      
      This commit updates the regex's in arm.exp dejagnu files to match the
      new format and remove the extra 20+ FAILs on excess errors that are
      introduced on certain variations (e.g.
      arm-eabi-aem/-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp).
      
      Regtested arm.exp with cross-compiler arm-none-eabi
      
      gcc/testsuite/ChangeLog:
      
      2019-04-12  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* g++.target/arm/arm.exp: Change format of default prune regex.
      	* gcc.target/arm/arm.exp: Change format of default prune regex.
      
      From-SVN: r270316
      Matthew Malcomson committed
    • Handle multiple 'default' in target attribute (PR middle-end/89970). · a164374e
      2019-04-12  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/89970
      	* multiple_target.c (create_dispatcher_calls): Wrap ifunc
      	in error message.
      	(separate_attrs): Handle multiple 'default's.
      	(expand_target_clones): Rework error handling code.
      2019-04-12  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/89970
      	* gcc.target/i386/mvc15.c: New test.
      	* gcc.target/i386/mvc3.c: Quote target in error pattern.
      	* gcc.target/i386/mvc4.c: Remove duplicit 'default'.
      
      From-SVN: r270314
      Martin Liska committed
    • re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent… · 34f02c07
      re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent upon function inline)
      
      gcc/ChangeLog:
      
      2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
      	mode of vector rather than mode of destination for move instruction.
      	* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
      	Use QI inner mode with V16QI vector mode.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* gcc.target/powerpc/fold-vec-extract-char.p8.c: Adjust expected
      	instruction counts.
      	* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.
      
      From-SVN: r270313
      Kelvin Nilsen committed
    • * de.po, sv.po: Update. · a8478751
      From-SVN: r270309
      Jakub Jelinek committed
    • re PR target/52726 (Composed error message will not get translated) · 0ef88b20
      	PR target/52726
      	* config/tilepro/tilepro.c (tilepro_print_operand): Use just
      	"invalid %%t operand" in output_operand_lossage message.
      
      From-SVN: r270308
      Jakub Jelinek committed
    • Remove spurious empty line from ChangeLog · ab541024
      From-SVN: r270307
      Jonathan Wakely committed
    • S/390: Fix a problem with the bswap vector pattern · 2541c40f
      arch13 introduced instructions to perform vector element-wise byte
      swaps on the way from or to memory.  For a byte swap between vector
      registers the vector permute instruction is required which needs a
      permute pattern to be loaded into a vector register first.
      
      With the current implementation there is a potential problem when the
      decision for the reg-reg variant is made very late.  This patch is
      supposed to fix that.
      
      With the patch the required permute pattern is generated already in
      the expander and attached to the bswap pattern as USE operand.  The
      predicate in the insn_and_split pattern accepts it although the
      permute constant as such is not a valid constant.  For the reg-reg
      variant only the vector register constraint is used for the permute
      constant forcing LRA to a) push the constant into literal pool and b)
      load the literal pool constant into a vector register.
      
      gcc/ChangeLog:
      
      2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/predicates.md (permute_pattern_operand): New
      	predicate.
      	* config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
      	operand for the permute pattern.
      	("*vec_perm<mode>"): New insn definition.
      	("bswap<mode>"): Generate the permute pattern operand in the
      	expander and perform the operand reloads for pre arch13 level
      	already.
      	("*bswap<mode>_emu"): Rename to ...
      	("*bswap<mode>"): ... this. And make the splitter vxe2 only.
      	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
      	Add the USE operand for the permute pattern.
      	("*vec_set_bswap_vec<mode>"): Likewise.
      
      From-SVN: r270306
      Andreas Krebbel committed
    • re PR c/89946 (ICE in assemble_start_function, at varasm.c:1871) · 8e8225e6
      	PR c/89946
      	* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
      	and gcc_unreachable if it fails, just call tree_to_uhwi which
      	verifies that too.  Test TREE_CHAIN instead of list_length > 1.
      	Start warning message with a lower-case letter.  Formatting fixes.
      c-family/
      	* c-attribs.c (handle_patchable_function_entry_attribute): Add
      	function comment.  Warn if arguments of the attribute are not positive
      	integer constants.
      testsuite/
      	* c-c++-common/pr89946.c: New test.
      
      From-SVN: r270305
      Jakub Jelinek committed
    • re PR rtl-optimization/90026 (ICE: verify_flow_info failed (error: missing barrier after block 2)) · c758576a
      	PR rtl-optimization/90026
      	* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
      	successors, look for BARRIERs inside of the whole BB_FOOTER chain
      	rather than just at the start of it.  If e->src BB_FOOTER is not NULL
      	in cfglayout mode, use emit_barrier_after_bb.
      
      	* g++.dg/opt/pr90026.C: New test.
      
      From-SVN: r270304
      Jakub Jelinek committed
    • libphobos: Parallelize the libphobos testsuite · df63d1b7
      The removal of the check programs in libphobos means that all tests
      will now be compiled one at a time, causing a notable slowdown in
      comparison with the previous method of testing.
      
      libphobos/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* testsuite/Makefile.am:
      	* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove dejagnu.
      	(RUNTEST): Remove variable.
      	(RUNTESTDEFAULTFLAGS, check_p_subno, check_p_numbers0,
      	check_p_numbers1, check_p_numbers2, check_p_numbers3,
      	check_p_numbers4, check_p_numbers5, check_p_numbers6, check_p_numbers,
      	check_p_subdirs, check_DEJAGNU_libphobos_targets): New variables.
      	(site.exp, %/site.exp, check-DEJAGNU, check-am, clean-local): New
      	rules written so that all the *.exp files are ran parallelized.
      	(CLEANFILES): Add *.exe, *.o, and site.exp.
      	* testsuite/Makefile.in: Regenerate.
      
      From-SVN: r270303
      Iain Buclaw committed
    • libphobos: Replace library check programs with dg-runtest · 0d6aae24
      Fixes multilib handling when running the libphobos testsuite.
      
      libphobos/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	PR d/89255
      	* configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals.
      	* configure: Regenerate.
      	* d_rules.am (%.t.lo, %.t.o): Remove rules.
      	(unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK,
      	libgphobos_t_la_LINK): Remove variables.
      	* libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS,
      	DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
      	unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
      	unittest_static_LDFLAGS, unittest_static_LDADD,
      	EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
      	libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
      	libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
      	unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
      	unittest_LDADD): Remove variables.
      	(clean-local): Remove rule.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.am (PHOBOS_TEST_LOBJECTS,
      	PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
      	unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
      	unittest_static_LDFLAGS, unittest_static_LDADD,
      	EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
      	libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
      	libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
      	unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
      	unittest_LDADD): Remove variables.
      	(clean-local): Remove rule.
      	* src/Makefile.in: Regenerate.
      	* testsuite/lib/libphobos.exp (libphobos_test_name): New global.
      	(libphobos_init): Set libphobos_test_name.
      	(libphobos-dg-test): Override name if libphobos_test_name is set.
      	(filter_libphobos_unittests): New proc.
      	* testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp.
      	* testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name.
      	* testsuite/libphobos.druntime/druntime.exp: New file.
      	* testsuite/libphobos.druntime_shared/druntime_shared.exp: New file.
      	* testsuite/libphobos.phobos/phobos.exp: New file.
      	* testsuite/libphobos.phobos_shared/phobos_shared.exp: New file.
      	* testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests.
      	* testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp
      	* testsuite/libphobos.init_fini/init_fini.exp: Likewise.
      	* testsuite/libphobos.thread/thread.exp: Likewise.
      	* testsuite/libphobos.typeinfo/typeinfo.exp: Likewise.
      	* testsuite/libphobos.unittests/unittests.exp: Remove.
      	* testsuite/test_runner.d: Remove.
      	* testsuite/testsuite_flags.in: Add phobos to --gdcpaths.
      
      From-SVN: r270302
      Iain Buclaw committed
    • d: Add -fbuilding-libphobos-tests option · c50eadba
      Currently, the druntime and phobos unittests are compiled as a separate
      check program, then ran by the libphobos.unittest/unittest.exp script.
      As PR d/89255 notes, this process lacks proper multilib handling.
      
      As a first step, a new internal option that instructs the compiler to
      put the reference to all unittest functions in another symbol has been
      added.  This will allow each module to be compiled separately as a
      standalone program using dg-runtest without running into collisions in
      the D runtime module registry.
      
      gcc/d/ChangeLog:
      
      2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
      	* decl.cc (DeclVisitor): Add in_version_unittest_ field.
      	(DeclVisitor::visit(ConditionalDeclaration)): New override.
      	(DeclVisitor::visit(FuncDeclaration)): Set
      	DECL_IN_UNITTEST_CONDITION_P.
      	* lang.opt (-fbuilding-libphobos-tests): Add option.
      	* modules.cc (current_testing_module): New static variable.
      	(build_module_tree): Generate second moduleinfo symbol to hold
      	reference to unittests if flag_building_libphobos_tests.
      	(register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
      	which moduleinfo the decl should be registered against.
      
      From-SVN: r270301
      Iain Buclaw committed