Skip to content

Conversation

@wilzbach
Copy link
Contributor

Conflicts:
src/dmd/backend/cgobj.d

Basile Burg and others added 30 commits July 2, 2019 15:41
fix issue 19295 - ICE when taking address of member function passed as template parameter
Fix issue 20022: [POSIX] extern(C++, "namespace") does not apply namespace to enum
Fix Issue 20025 - alias this combined with a copy constructor seems to lead to undefined behaviour.
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
Fix typo in dmd.func.setUnsafe description
…ackend-typo-strikes-again

Fix issue 17885: use the correct expression's type when creating temporary for remove() call
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
fix issue 19708 - Can't use __traits(getAttributes, ...)[...] as a type
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
remove field to match a recent change in mtype.d
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
fix issue 20011, 17828 - crash or accept write operation on members of manifest constant structs
merged-on-behalf-of: Walter Bright <WalterBright@users.noreply.github.com>
Fix bug 20035 - segfault in vcg-ast
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
… not silently corrupt memory in release builds
use same limit on debug record length in debug and release builds
merged-on-behalf-of: Walter Bright <WalterBright@users.noreply.github.com>
Fix issue 20039: when checking for an existing template instance, tolerate expressions without types.
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
a C++ dtor gets its vtblIndex later (and might even be added twice to the vtbl)
fix debug assertion for C++ dtor
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
fix issue 20042 - __vector CTFE crashes the compiler
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
fix issue 20045 - bogus error: "integer constant expression expected instead of (uint).sizeof
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
fix issue 20044 - Compiler crash when using an opaque struct as template parameter
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
Fix issue 20052 - SIMD 32 bytes segfault
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
@dlang-bot
Copy link
Contributor

dlang-bot commented Jul 27, 2019

Thanks for your pull request, @wilzbach!

Bugzilla references

Auto-close Bugzilla Severity Description
17828 normal [ICE] Internal error: ddmd/backend/cgcs.c 352 - CTFE appending to an array on a struct from a template
17885 critical Unable to remove a tuple from associative array.
19295 regression ICE when taking address of member function passed as template parameter
19708 normal Can't use __traits(getAttributes, ...)[...] as a type
20011 regression [REG] modification of member of a manifest constant that's also a struct is allowed
20022 regression POSIX: extern(C++, namespace) does not apply namespace to enum
20025 normal alias this combined with a copy constructor seems to lead to undefined behaviour.
20035 critical [ICE] Segmentation fault in ExpressionPrettyPrintVisitor::visit(IntegerExp*) at dmd/hdrgen.d:1775
20039 normal ICE from double template instantiation with getMember of overload of class and template function
20042 major __vector CTFE crashes the compiler
20044 critical Compiler crash when using an opaque struct as template parameter
20045 normal bogus error: "integer constant expression expected instead of (uint).sizeof"
20052 critical SIMD 32 bytes causes obscure segfault

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub fetch digger
dub run digger -- build "master + dmd#10232"

@rainers
Copy link
Member

rainers commented Jul 27, 2019

Thanks. This seems to be running into out-of-memory problems, though.

@rainers
Copy link
Member

rainers commented Jul 27, 2019

This seems to be running into out-of-memory problems, though.

f93ec13 seems to be the offending commit. The introduced silent limit on recursion depth seems problematic to begin with.

@rainers
Copy link
Member

rainers commented Jul 29, 2019

f93ec13 seems to be the offending commit. The introduced silent limit on recursion depth seems problematic to begin with.

@wilzbach I think I have a fix for that, but it's mostly reverting that commit. What would be the correct workflow: applying the change to stable first, then redo this merge to master PR? Or adding the fix to this PR?

@wilzbach
Copy link
Contributor Author

I think stable first would be better as there might be a point release soon.

rainers and others added 3 commits July 29, 2019 09:56
reverts most of PR 10205, now fixing the existing recursion check.
[stable] Revert "Fix Issue 19754 - cast() sometimes yields lvalue, sometimes yields rvalue"
redo fix for issue 11856: segfault with circular template constraints
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
@rainers
Copy link
Member

rainers commented Jul 30, 2019

I think stable first would be better as there might be a point release soon.

Fix is merged, can this be rebased/redone?

@wilzbach
Copy link
Contributor Author

wilzbach commented Jul 30, 2019

Fix is merged

Awesome. Thanks!

can this be rebased/redone?

Yes, just merged stable in again and rebased against newest master.
Conflicts:
src/dmd/backend/cgobj.d (see #10165)
src/dmd/typesem.d

naked ;
mov EAX,index - [ESP+4] ;
mov ECX,p - [ESP+4] ;
}
Copy link
Contributor Author

@wilzbach wilzbach Jul 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about this change, but I think I merged this incorrectly. See e.g. #10045

edit: no, it was removed in #10165.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, looks good.

@rainers
Copy link
Member

rainers commented Jul 30, 2019

Error on buildkite:

Could not probe the compiler version for "dmd". Toolchain requirements might be ineffective
  | Fetching libdparse 0.10.13 (getting selected version)...
  | Fetching stdx-allocator 2.77.5 (getting selected version)...
  | Invalid SemVer format: 0.00.0
  | posix.mak:616: recipe for target 'generated/linux/release/64/tests_extractor' failed
  | make[1]: *** [generated/linux/release/64/tests_extractor] Error 2
  | make[1]: Leaving directory '/var/lib/buildkite-agent/builds/ci-agent-b008268a-0cc9-4064-908e-0d5803176a33-8/dlang/dmd/phobos'
  | posix.mak:646: recipe for target 'std/array.betterc' failed
  | make: *** [std/array.betterc] Error 2

Could that be caused by #10242?

@wilzbach
Copy link
Contributor Author

Could that be caused by #10242?

Likely, though I wonder why it passed for that result. Let's see whether #10244 helps.

@thewilsonator
Copy link
Contributor

Hmm, dlang bot seems to be asleep.

@thewilsonator thewilsonator merged commit edc9b35 into dlang:master Aug 1, 2019
@wilzbach wilzbach deleted the merge_stable branch August 1, 2019 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.