d: Fix importC cannot find input file __importc_builtins.d [PR119761]

Synchronizes the D runtime library with upstream druntime 09ed02ce56,
and fixes a rename of the importC module missed in the r15-6559 merge.

	PR d/119761

libphobos/ChangeLog:

	* libdruntime/MERGE: Merge upstream druntime 09ed02ce56.
	* libdruntime/Makefile.am (DRUNTIME_DISOURCES): Rename __builtins.di
	to __importc_builtins.di.
	* libdruntime/Makefile.in: Regenerate.
	* libdruntime/__builtins.di: Move to...
	* libdruntime/__importc_builtins.di: ...here.

gcc/testsuite/ChangeLog:

	* gdc.dg/import-c/import-c.exp: New test.
	* gdc.dg/import-c/pr119761.d: New test.
	* gdc.dg/import-c/pr119761c.c: New test.
This commit is contained in:
Iain Buclaw 2025-04-13 00:48:45 +02:00
parent 9a7b6668f8
commit 424c6c8803
7 changed files with 46 additions and 5 deletions

View file

@ -0,0 +1,29 @@
# Copyright (C) 2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# Load support procs.
load_lib gdc-dg.exp
# Initialize `dg'.
dg-init
# Main loop.
gdc-dg-runtest [lsort \
[glob -nocomplain $srcdir/$subdir/*.d ] ] "" \
"-I $srcdir/$subdir -finclude-imports"
# All done.
dg-finish

View file

@ -0,0 +1,2 @@
// { dg-do compile }
import pr119761c;

View file

@ -0,0 +1,4 @@
int f119761(const char *, ...)
{
return 0;
}

View file

@ -1,4 +1,4 @@
c6863be7206eef3c393726363a480baf0a0c6530
09ed02ce56ea5bf3e59f21ee0390cd85eb8bfaa7
The first line of this file holds the git revision number of the last
merge done from the dlang/dmd repository.

View file

@ -445,4 +445,4 @@ DRUNTIME_DSOURCES_WINDOWS = core/sys/windows/accctrl.d \
core/sys/windows/winuser.d core/sys/windows/winver.d \
core/sys/windows/wtsapi32.d core/sys/windows/wtypes.d
DRUNTIME_DISOURCES = __builtins.di __main.di
DRUNTIME_DISOURCES = __importc_builtins.di __main.di

View file

@ -1126,7 +1126,7 @@ DRUNTIME_DSOURCES_WINDOWS = core/sys/windows/accctrl.d \
core/sys/windows/winuser.d core/sys/windows/winver.d \
core/sys/windows/wtsapi32.d core/sys/windows/wtypes.d
DRUNTIME_DISOURCES = __builtins.di __main.di
DRUNTIME_DISOURCES = __importc_builtins.di __main.di
all: all-am
.SUFFIXES:

View file

@ -3,10 +3,10 @@
* The purpose is to make it unnecessary to hardwire them into the compiler.
* As the leading double underscore suggests, this is for internal use only.
*
* Copyright: Copyright Digital Mars 2022
* Copyright: Copyright D Language Foundation 2022-2025
* License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Walter Bright
* Source: $(DRUNTIMESRC __builtins.d)
* Source: $(DRUNTIMESRC __importc_builtins.di)
*/
@ -86,6 +86,12 @@ version (DigitalMars)
return core.bitop.bswap(value);
}
uint __builtin__popcount()(ulong value)
{
import core.bitop;
return core.bitop._popcnt(value);
}
// Lazily imported on first use
private alias c_long = imported!"core.stdc.config".c_long;