{"action":"created","issue":{"url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/5110","labels_url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/5110/labels{/name}","comments_url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/5110/comments","events_url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/5110/events","html_url":"https://github.com/D-Programming-Language/dmd/pull/5110","id":107830837,"number":5110,"title":"add test for Issue 15056 - Unstored RAII struct return yields bogus error","user":{"login":"MartinNowak","id":288976,"avatar_url":"https://avatars.githubusercontent.com/u/288976?v=3","gravatar_id":"","url":"https://api.github.com/users/MartinNowak","html_url":"https://github.com/MartinNowak","followers_url":"https://api.github.com/users/MartinNowak/followers","following_url":"https://api.github.com/users/MartinNowak/following{/other_user}","gists_url":"https://api.github.com/users/MartinNowak/gists{/gist_id}","starred_url":"https://api.github.com/users/MartinNowak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MartinNowak/subscriptions","organizations_url":"https://api.github.com/users/MartinNowak/orgs","repos_url":"https://api.github.com/users/MartinNowak/repos","events_url":"https://api.github.com/users/MartinNowak/events{/privacy}","received_events_url":"https://api.github.com/users/MartinNowak/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-09-23T00:38:42Z","updated_at":"2015-09-24T00:56:21Z","closed_at":"2015-09-23T11:01:04Z","pull_request":{"url":"https://api.github.com/repos/D-Programming-Language/dmd/pulls/5110","html_url":"https://github.com/D-Programming-Language/dmd/pull/5110","diff_url":"https://github.com/D-Programming-Language/dmd/pull/5110.diff","patch_url":"https://github.com/D-Programming-Language/dmd/pull/5110.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/comments/142771327","html_url":"https://github.com/D-Programming-Language/dmd/pull/5110#issuecomment-142771327","issue_url":"https://api.github.com/repos/D-Programming-Language/dmd/issues/5110","id":142771327,"user":{"login":"mleise","id":609447,"avatar_url":"https://avatars.githubusercontent.com/u/609447?v=3","gravatar_id":"","url":"https://api.github.com/users/mleise","html_url":"https://github.com/mleise","followers_url":"https://api.github.com/users/mleise/followers","following_url":"https://api.github.com/users/mleise/following{/other_user}","gists_url":"https://api.github.com/users/mleise/gists{/gist_id}","starred_url":"https://api.github.com/users/mleise/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mleise/subscriptions","organizations_url":"https://api.github.com/users/mleise/orgs","repos_url":"https://api.github.com/users/mleise/repos","events_url":"https://api.github.com/users/mleise/events{/privacy}","received_events_url":"https://api.github.com/users/mleise/received_events","type":"User","site_admin":false},"created_at":"2015-09-24T00:56:21Z","updated_at":"2015-09-24T00:56:21Z","body":"Sorry for the trouble. Dlang may be missing a specification part about alloca() and some test cases along with that. It is one of these little systems programming tools that can give an edge over higher level languages, but breaks assumptions about the stack layout in compilers and requires an amount of support code that makes you wonder if it is worth it.\r\nI agree with Martin that thrown Errors mean that the program is in an inconsistent state and needs to leave at the next exit. It may even be written in the spec, that cleanup can be omitted on errors. Maybe bending the rules a bit, LDC and GDC could even apply their 'nothrow' back-end attributes. I don't know if that optimization really buys us anything, but I heard @ibuclaw talk about it at least and there is posts like this https://www.bountysource.com/issues/1407205-arm-runnable-opover2-d-fails-xopequals-fallback-aborts-instead-of-throwing-exception\r\nNeither GDC nor LDC will make the first step, put a nail in the coffin and declare Errors unrecoverable, because folks would say their compiler is kaput. Meantime people like myself take that undefined state on Errors idea more literal and think that alloca() should work in nothrow functions.\r\nSo here is my proposal for a new nothrowsatall attribute … (just kidding)"}}