Skip to content

fix remaining problem with multi-statement inlining#14230

Merged
dlang-bot merged 2 commits intodlang:masterfrom
WalterBright:blocksToExpression2
Jun 29, 2022
Merged

fix remaining problem with multi-statement inlining#14230
dlang-bot merged 2 commits intodlang:masterfrom
WalterBright:blocksToExpression2

Conversation

@WalterBright
Copy link
Member

failing runnable/testline.d

@dlang-bot
Copy link
Contributor

Thanks for your pull request, @WalterBright!

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

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

dub run digger -- build "master + dmd#14230"

@WalterBright WalterBright force-pushed the blocksToExpression2 branch 2 times, most recently from f44dfa5 to 020ed77 Compare June 21, 2022 06:16
@WalterBright
Copy link
Member Author

@rainers you are probably the most knowledgeable person on exceptions for mscoff32. Can you please take a look at this and point me at something I can fix? The failure is most likely due to something being inlined in the runtime library, as testline.d itself is not inlining anything according to my tests.

@rainers
Copy link
Member

rainers commented Jun 22, 2022

you are probably the most knowledgeable person on exceptions for mscoff32.

It uses the same exception mechanism as the OMF version, i.e. deh_win32.

As far as I can tell from stepping through a build with the debugger (debug info is pretty broken in optimized builds), the problem is in onAssertError: the emplace in staticError inlines the ctors of AssertError, but calls the ctor of Throwable with a broken msg. This later causes a crash in Throwable.toString.

@WalterBright
Copy link
Member Author

Thanks, @rainers ! I will check this out.

@WalterBright
Copy link
Member Author

Which make program is used to build the mscoff 32 bit druntime library? win64.mak does not have any build instructions.

@rainers
Copy link
Member

rainers commented Jun 26, 2022

Which make program is used to build the mscoff 32 bit druntime library?

See dlang/druntime#3853 (comment)

BTW: AFAICT the win*.mak files were left in their dire state mostly to not interrupt your workflow, especially with respect to using VC10.

@WalterBright
Copy link
Member Author

Finally, I can repro the problem! Yay!

@WalterBright WalterBright force-pushed the blocksToExpression2 branch 2 times, most recently from 3331592 to 41f3051 Compare June 28, 2022 06:44
@WalterBright
Copy link
Member Author

buildkite seems to hang.

@WalterBright
Copy link
Member Author

The 3 buildkite errors are all of the form:

include   src/importc.h
cpp -dD src/core/stdc/errno.c -include src/importc.h errno.i
parse     errno

But I have no idea why buildkite fails to build the library while every other test that builds the library succeeds. I do not know what is different about the buildkite builds.

@WalterBright WalterBright force-pushed the blocksToExpression2 branch 2 times, most recently from 15a0d00 to 1b8f146 Compare June 28, 2022 08:30
@WalterBright WalterBright force-pushed the blocksToExpression2 branch from 1b8f146 to fe8ab7e Compare June 28, 2022 18:15
@WalterBright
Copy link
Member Author

Hmm, suddenly it starts working! Anyhow, ready to go.

@dkorpel @RazvanN7

@WalterBright WalterBright force-pushed the blocksToExpression2 branch from fe8ab7e to f55393a Compare June 28, 2022 22:27
@WalterBright WalterBright force-pushed the blocksToExpression2 branch from f55393a to 8dfa638 Compare June 28, 2022 23:03
@dlang-bot dlang-bot merged commit d87948a into dlang:master Jun 29, 2022
@WalterBright WalterBright deleted the blocksToExpression2 branch June 29, 2022 08:22
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.

4 participants