Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade frontend & libs to v2.096.0+ #3678

Merged
merged 29 commits into from
Apr 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
879c8ba
Upgrade frontend & libs to v2.096.0-beta.1+ (dlang/dmd@0c2d8bd2ab)
kinke Feb 28, 2021
c063084
Fix little C++ header regressions
kinke Feb 28, 2021
44daef9
Add support for 'noreturn' type
kinke Feb 28, 2021
7a58560
Phobos: Fix little std.math regressions
kinke Feb 28, 2021
3abffca
Adapt to expression-less `synchronized` statement change (with GC-bac…
kinke Feb 28, 2021
52bcbcc
Fix ICE for ref/out params of opaque structs
kinke Mar 1, 2021
ac54ab6
druntime: Adapt coverage integration test to work on Windows
kinke Mar 1, 2021
27a576c
dmd-testsuite: Slightly adapt some new tests for LDC
kinke Mar 1, 2021
5b6aff6
GitHub Actions: Disable new @live tests for ltsmaster job
kinke Mar 1, 2021
3d55536
Fix orphaned CondExp __cond variable refs in codegen AST
kinke Mar 6, 2021
0d7d776
Fix TypeInfo_Interface.info regression
kinke Mar 7, 2021
8767b76
Merge remote-tracking branch 'origin/master' into merge-2.096
kinke Mar 20, 2021
5534009
SysV x64 ABI: Add support for new magic __c_complex_real enum
kinke Mar 20, 2021
9ddb03d
x86 ABI: Add support for new magic __c_complex_{float,double,real} enums
kinke Mar 20, 2021
a34f533
Merge upstream stable (dlang/dmd@75fe50f497)
kinke Mar 21, 2021
5335e28
dmd-testsuite: Minimally adapt runnable/test42.d
kinke Mar 21, 2021
67efbbd
Bump versions of bundled dlang tools & dub
kinke Mar 21, 2021
014ec11
dmd-testsuite: Make runnable_cxx/extra-files/test21515.cpp compile wi…
kinke Mar 28, 2021
0332ef4
CMake: Work around issue #3690 by disabling -linkonce-templates for D…
kinke Mar 28, 2021
693e764
Treat temporaries as rvalue expressions when ABI-rewriting function c…
kinke Apr 4, 2021
afe973e
dmd-testsuite: Minimally relax compilable/ctfe_math.d for quadruple r…
kinke Apr 4, 2021
924d766
Win64: Relax tests/dynamiccompile/bind_opt.d due to issue #3695
kinke Apr 4, 2021
aea9495
Merge upstream stable (dlang/dmd@128d40a86b)
kinke Apr 4, 2021
69df064
Skip tests/driver/cleanup_obj_gh3643.d if x86 LLVM backend is missing
kinke Apr 4, 2021
bdc8565
CMake: Compile druntime with -transition=complex too
kinke Apr 5, 2021
f39371a
Merge remote-tracking branch 'origin/master' into merge-2.096
kinke Apr 10, 2021
12aea9c
Merge upstream stable (dlang/dmd@655278312e)
kinke Apr 10, 2021
cc60de4
druntime: Cherry-pick dlang/druntime#3432 and dlang/druntime#3428
kinke Apr 10, 2021
18607e6
ldmd2: Add support for new -gdwarf=<version>
kinke Apr 10, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/supported_llvm_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,9 @@ jobs:
rm tests/d2/dmd-testsuite/runnable/{testptrref,xtest46}_gc.d
rm tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
# The @live tests neither (LDC segfaults)
rm tests/d2/dmd-testsuite/compilable/ob1.d
rm tests/d2/dmd-testsuite/compilable/ob{1,2}.d
rm tests/d2/dmd-testsuite/fail_compilation/fob{1,2}.d
rm tests/d2/dmd-testsuite/fail_compilation/failob2.d
# A __traits(getOverloads) test neither
rm tests/d2/dmd-testsuite/compilable/test21050.d
fi
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,11 @@ include(GetLinuxDistribution)
#

# Version information
set(LDC_VERSION "1.25.0") # May be overridden by git hash tag
set(LDC_VERSION "1.26.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 0)
set(DMDFE_PATCH_VERSION 95)
set(DMDFE_FIX_LEVEL 1)
set(DMDFE_PATCH_VERSION 96)
set(DMDFE_FIX_LEVEL 0)

set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}${DMDFE_PATCH_VERSION})
if(DEFINED DMDFE_FIX_LEVEL)
Expand Down
7 changes: 4 additions & 3 deletions cmake/Modules/BuildDExecutable.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ function(build_d_executable target_name output_exe d_src_files compiler_args lin
# Compile all D modules to a single object.
set(object_file ${PROJECT_BINARY_DIR}/obj/${target_name}${CMAKE_CXX_OUTPUT_EXTENSION})
# Default to -linkonce-templates with LDMD host compiler, to speed-up optimization.
if("${D_COMPILER_ID}" STREQUAL "LDMD")
set(dflags -linkonce-templates ${dflags})
endif()
# FIXME: https://github.com/ldc-developers/ldc/issues/3690
#if("${D_COMPILER_ID}" STREQUAL "LDMD")
# set(dflags -linkonce-templates ${dflags})
#endif()
add_custom_command(
OUTPUT ${object_file}
COMMAND ${D_COMPILER} -c ${dflags} -of${object_file} ${d_src_files}
Expand Down
66 changes: 33 additions & 33 deletions dmd/access.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* Specification: $(LINK2 https://dlang.org/spec/attribute.html#visibility_attributes, Visibility Attributes)
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/access.d, _access.d)
Expand Down Expand Up @@ -51,8 +51,8 @@ bool checkAccess(AggregateDeclaration ad, Loc loc, Scope* sc, Dsymbol smember)
if (!symbolIsVisible(sc, smember) && (!(sc.flags & SCOPE.onlysafeaccess) || sc.func.setUnsafe()))
{
ad.error(loc, "member `%s` is not accessible%s", smember.toChars(), (sc.flags & SCOPE.onlysafeaccess) ? " from `@safe` code".ptr : "".ptr);
//printf("smember = %s %s, prot = %d, semanticRun = %d\n",
// smember.kind(), smember.toPrettyChars(), smember.prot(), smember.semanticRun);
//printf("smember = %s %s, vis = %d, semanticRun = %d\n",
// smember.kind(), smember.toPrettyChars(), smember.visible() smember.semanticRun);
return true;
}
return false;
Expand All @@ -70,14 +70,14 @@ private bool hasPackageAccess(Module mod, Dsymbol s)
{
static if (LOG)
{
printf("hasPackageAccess(s = '%s', mod = '%s', s.protection.pkg = '%s')\n", s.toChars(), mod.toChars(), s.prot().pkg ? s.prot().pkg.toChars() : "NULL");
printf("hasPackageAccess(s = '%s', mod = '%s', s.visibility.pkg = '%s')\n", s.toChars(), mod.toChars(), s.visible().pkg ? s.visible().pkg.toChars() : "NULL");
}
Package pkg = null;
if (s.prot().pkg)
pkg = s.prot().pkg;
if (s.visible().pkg)
pkg = s.visible().pkg;
else
{
// no explicit package for protection, inferring most qualified one
// no explicit package for visibility, inferring most qualified one
for (; s; s = s.parent)
{
if (auto m = s.isModule())
Expand Down Expand Up @@ -227,7 +227,7 @@ bool checkAccess(Scope* sc, Package p)
return false;
for (; sc; sc = sc.enclosing)
{
if (sc.scopesym && sc.scopesym.isPackageAccessible(p, Prot(Prot.Kind.private_)))
if (sc.scopesym && sc.scopesym.isPackageAccessible(p, Visibility(Visibility.Kind.private_)))
return false;
}

Expand All @@ -244,16 +244,16 @@ bool checkAccess(Scope* sc, Package p)
*/
bool symbolIsVisible(Module mod, Dsymbol s)
{
// should sort overloads by ascending protection instead of iterating here
// should sort overloads by ascending visibility instead of iterating here
s = mostVisibleOverload(s);
final switch (s.prot().kind)
final switch (s.visible().kind)
{
case Prot.Kind.undefined: return true;
case Prot.Kind.none: return false; // no access
case Prot.Kind.private_: return s.getAccessModule() == mod;
case Prot.Kind.package_: return s.getAccessModule() == mod || hasPackageAccess(mod, s);
case Prot.Kind.protected_: return s.getAccessModule() == mod;
case Prot.Kind.public_, Prot.Kind.export_: return true;
case Visibility.Kind.undefined: return true;
case Visibility.Kind.none: return false; // no access
case Visibility.Kind.private_: return s.getAccessModule() == mod;
case Visibility.Kind.package_: return s.getAccessModule() == mod || hasPackageAccess(mod, s);
case Visibility.Kind.protected_: return s.getAccessModule() == mod;
case Visibility.Kind.public_, Visibility.Kind.export_: return true;
}
}

Expand Down Expand Up @@ -291,21 +291,21 @@ bool symbolIsVisible(Scope *sc, Dsymbol s)
*/
bool checkSymbolAccess(Scope *sc, Dsymbol s)
{
final switch (s.prot().kind)
final switch (s.visible().kind)
{
case Prot.Kind.undefined: return true;
case Prot.Kind.none: return false; // no access
case Prot.Kind.private_: return sc._module == s.getAccessModule();
case Prot.Kind.package_: return sc._module == s.getAccessModule() || hasPackageAccess(sc._module, s);
case Prot.Kind.protected_: return hasProtectedAccess(sc, s);
case Prot.Kind.public_, Prot.Kind.export_: return true;
case Visibility.Kind.undefined: return true;
case Visibility.Kind.none: return false; // no access
case Visibility.Kind.private_: return sc._module == s.getAccessModule();
case Visibility.Kind.package_: return sc._module == s.getAccessModule() || hasPackageAccess(sc._module, s);
case Visibility.Kind.protected_: return hasProtectedAccess(sc, s);
case Visibility.Kind.public_, Visibility.Kind.export_: return true;
}
}

/**
* Use the most visible overload to check visibility. Later perform an access
* check on the resolved overload. This function is similar to overloadApply,
* but doesn't recurse nor resolve aliases because protection/visibility is an
* but doesn't recurse nor resolve aliases because visibility is an
* attribute of the alias not the aliasee.
*/
public Dsymbol mostVisibleOverload(Dsymbol s, Module mod = null)
Expand Down Expand Up @@ -355,7 +355,7 @@ public Dsymbol mostVisibleOverload(Dsymbol s, Module mod = null)
* Usually aliases should not be resolved for visibility checking
* b/c public aliases to private symbols are public. But for the
* overloadable alias situation, the Alias (_ad_) has been moved
* into it's own Aliasee, leaving a shell that we peel away here.
* into its own Aliasee, leaving a shell that we peel away here.
*/
auto aliasee = ad.toAlias();
if (aliasee.isFuncAliasDeclaration || aliasee.isOverDeclaration)
Expand All @@ -378,23 +378,23 @@ public Dsymbol mostVisibleOverload(Dsymbol s, Module mod = null)
break;

/**
* Return the "effective" protection attribute of a symbol when accessed in a module.
* The effective protection attribute is the same as the regular protection attribute,
* Return the "effective" visibility attribute of a symbol when accessed in a module.
* The effective visibility attribute is the same as the regular visibility attribute,
* except package() is "private" if the module is outside the package;
* otherwise, "public".
*/
static Prot protectionSeenFromModule(Dsymbol d, Module mod = null)
static Visibility visibilitySeenFromModule(Dsymbol d, Module mod = null)
{
Prot prot = d.prot();
if (mod && prot.kind == Prot.Kind.package_)
Visibility vis = d.visible();
if (mod && vis.kind == Visibility.Kind.package_)
{
return hasPackageAccess(mod, d) ? Prot(Prot.Kind.public_) : Prot(Prot.Kind.private_);
return hasPackageAccess(mod, d) ? Visibility(Visibility.Kind.public_) : Visibility(Visibility.Kind.private_);
}
return prot;
return vis;
}

if (next &&
protectionSeenFromModule(mostVisible, mod).isMoreRestrictiveThan(protectionSeenFromModule(next, mod)))
visibilitySeenFromModule(mostVisible, mod) < visibilitySeenFromModule(next, mod))
mostVisible = next;
}
return mostVisible;
Expand Down
21 changes: 11 additions & 10 deletions dmd/aggregate.d
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Specification: $(LINK2 https://dlang.org/spec/struct.html, Structs, Unions),
* $(LINK2 https://dlang.org/spec/class.html, Class).
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/aggregate.d, _aggregate.d)
Expand Down Expand Up @@ -125,14 +125,15 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol

Expression getRTInfo; /// pointer to GC info generated by object.RTInfo(this)

Prot protection; /// visibility
///
Visibility visibility;
bool noDefaultCtor; /// no default construction
Sizeok sizeok = Sizeok.none; /// set when structsize contains valid data

final extern (D) this(const ref Loc loc, Identifier id)
{
super(loc, id);
protection = Prot(Prot.Kind.public_);
visibility = Visibility(Visibility.Kind.public_);
}

/***************************************
Expand All @@ -145,8 +146,8 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
sc2.stc &= STCFlowThruAggregate;
sc2.parent = this;
sc2.inunion = isUnionDeclaration();
sc2.protection = Prot(Prot.Kind.public_);
sc2.explicitProtection = 0;
sc2.visibility = Visibility(Visibility.Kind.public_);
sc2.explicitVisibility = 0;
sc2.aligndecl = null;
sc2.userAttribDecl = null;
sc2.namespace = null;
Expand Down Expand Up @@ -723,7 +724,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
// Emulate vthis.dsymbolSemantic()
vthis.storage_class |= STC.field;
vthis.parent = this;
vthis.protection = Prot(Prot.Kind.public_);
vthis.visibility = Visibility(Visibility.Kind.public_);
vthis.alignment = t.alignment();
vthis.semanticRun = PASS.semanticdone;

Expand Down Expand Up @@ -767,7 +768,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
// Emulate vthis2.dsymbolSemantic()
vthis2.storage_class |= STC.field;
vthis2.parent = this;
vthis2.protection = Prot(Prot.Kind.public_);
vthis2.visibility = Visibility(Visibility.Kind.public_);
vthis2.alignment = t.alignment();
vthis2.semanticRun = PASS.semanticdone;

Expand All @@ -777,7 +778,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol

override final bool isExport() const
{
return protection.kind == Prot.Kind.export_;
return visibility.kind == Visibility.Kind.export_;
}

/*******************************************
Expand Down Expand Up @@ -822,9 +823,9 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
return s;
}

override final Prot prot() pure nothrow @nogc @safe
override final Visibility visible() pure nothrow @nogc @safe
{
return protection;
return visibility;
}

// 'this' type
Expand Down
15 changes: 8 additions & 7 deletions dmd/aggregate.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/* Compiler implementation of the D programming language
* Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* http://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
Expand Down Expand Up @@ -112,7 +112,7 @@ class AggregateDeclaration : public ScopeDsymbol

Expression *getRTInfo; // pointer to GC info generated by object.RTInfo(this)

Prot protection;
Visibility visibility;
bool noDefaultCtor; // no default construction
Sizeok sizeok; // set when structsize contains valid data

Expand All @@ -131,7 +131,7 @@ class AggregateDeclaration : public ScopeDsymbol
bool isExport() const;
Dsymbol *searchCtor();

Prot prot();
Visibility visible();

// 'this' type
Type *handleType() { return type; }
Expand Down Expand Up @@ -187,7 +187,7 @@ class StructDeclaration : public AggregateDeclaration
TypeTuple *argTypes;

static StructDeclaration *create(Loc loc, Identifier *id, bool inObject);
Dsymbol *syntaxCopy(Dsymbol *s);
StructDeclaration *syntaxCopy(Dsymbol *s);
void semanticTypeInfoMembers();
Dsymbol *search(const Loc &loc, Identifier *ident, int flags = SearchLocalsOnly);
const char *kind() const;
Expand All @@ -200,12 +200,13 @@ class StructDeclaration : public AggregateDeclaration

unsigned numArgTypes() const;
Type *argType(unsigned index);
bool hasRegularCtor(bool checkDisabled = false);
};

class UnionDeclaration : public StructDeclaration
{
public:
Dsymbol *syntaxCopy(Dsymbol *s);
UnionDeclaration *syntaxCopy(Dsymbol *s);
const char *kind() const;

UnionDeclaration *isUnionDeclaration() { return this; }
Expand Down Expand Up @@ -284,7 +285,7 @@ class ClassDeclaration : public AggregateDeclaration

static ClassDeclaration *create(Loc loc, Identifier *id, BaseClasses *baseclasses, Dsymbols *members, bool inObject);
const char *toPrettyChars(bool QualifyTypes = false);
Dsymbol *syntaxCopy(Dsymbol *s);
ClassDeclaration *syntaxCopy(Dsymbol *s);
Scope *newScope(Scope *sc);
bool isBaseOf2(ClassDeclaration *cd);

Expand Down Expand Up @@ -321,7 +322,7 @@ class ClassDeclaration : public AggregateDeclaration
class InterfaceDeclaration : public ClassDeclaration
{
public:
Dsymbol *syntaxCopy(Dsymbol *s);
InterfaceDeclaration *syntaxCopy(Dsymbol *s);
Scope *newScope(Scope *sc);
bool isBaseOf(ClassDeclaration *cd, int *poffset);
bool isBaseOf(BaseClass *bc, int *poffset);
Expand Down
4 changes: 2 additions & 2 deletions dmd/aliasthis.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* Specification: $(LINK2 https://dlang.org/spec/class.html#alias-this, Alias This)
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/aliasthis.d, _aliasthis.d)
Expand Down Expand Up @@ -43,7 +43,7 @@ extern (C++) final class AliasThis : Dsymbol
this.ident = ident;
}

override Dsymbol syntaxCopy(Dsymbol s)
override AliasThis syntaxCopy(Dsymbol s)
{
assert(!s);
auto at = new AliasThis(loc, ident);
Expand Down
4 changes: 2 additions & 2 deletions dmd/aliasthis.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/* Compiler implementation of the D programming language
* Copyright (C) 2009-2020 by The D Language Foundation, All Rights Reserved
* Copyright (C) 2009-2021 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* http://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
Expand All @@ -23,7 +23,7 @@ class AliasThis : public Dsymbol
Dsymbol *sym;
bool isDeprecated_;

Dsymbol *syntaxCopy(Dsymbol *);
AliasThis *syntaxCopy(Dsymbol *);
const char *kind() const;
AliasThis *isAliasThis() { return this; }
void accept(Visitor *v) { v->visit(this); }
Expand Down
2 changes: 1 addition & 1 deletion dmd/apply.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* A depth-first visitor for expressions.
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/apply.d, _apply.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_aarch64.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the AArch64 ABI.
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: Martin Kinkelin
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/argtypes_aarch64.d, _argtypes_aarch64.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_sysv_x64.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the x86_64 System V ABI.
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: Martin Kinkelin
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/argtypes_sysv_x64.d, _argtypes_sysv_x64.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_x86.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the 32-bit x86 ABI.
*
* Copyright: Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/argtypes_x86.d, _argtypes_x86.d)
Expand Down
Loading