Looking for a resolved issue between GCC9 and GCC8

Jeremy Borys jnickborys@gmail.com
Sat Jan 14 17:22:42 GMT 2023


I wrote some C++ code that initialises a member via a lambda. The lambda
can throw an exception and in GCC8 the exception isn't caught but in GCC9
it is. I spent some time looking at the release notes and I was hoping that
someone could point to an issue which this was fixed in.

Thanks the code and godbolt link below should be better than my words:

```cpp
#include <iostream>
#include <memory>

class Bar {
    std::unique_ptr<int> foo2 = [&]() noexcept(false) {
        throw std::runtime_error("fail");
        return std::make_unique<int>();
    }();
};

int main()
{
    try { auto b = Bar(); }
    catch (const std::exception& e)
    {
        std::cout << "pass" << std::endl;
    }
    return 0;
}
```

Thanks
Jeremy

godbolt link attached

https://godbolt.org/#z:OYLghAFBqd5TKALEBjA9gEwKYFFMCWALugE4A0BIEAZgQDbYB2AhgLbYgDkAjF%2BTXRMiAZVQtGIHgBYBQogFUAztgAKAD24AGfgCsp5eiyahUAUgBMAIUtXyKxqiIEh1ZpgDC6egFc2TEAsAVnJ3ABkCJmwAOT8AI2xSEAB2cgAHdCViFyYvX39ArXTM7KEIqNi2BKTUh2wnHJEiFlIiPL8A4PtsR2chJpaicpj4xJT7Ztb2gosipUmhyJGqseSASnt0H1JUTi4Aen2AagAVAE807COzrdIjjBwjpETsciOyI/p0Fkwj4yPsOp2GlGAA6MxaACCEOhFgAzJFUL5HmY4R4XPNSNh2KjcDDLAimEifCi0Rw2GQzrj8VCkSwlEojlYWkczMkbFCjlyjvNMCAQD4mAQAI4%2BbAAfTSRFIqPRwlxR0E6AsrLhABFWUEbBYAGxmIJqiBrI5MdCA3ZS2gSFTGtkcyHcx1HIhIUjoADuPKIfJApEFzg44sSbtIEEsFhoLAY4bWqPtTu5WKI2yYXp9bBYAGsJYKRWLZZEiLiIDxY3D49y2Yay/aq3GaZDC0cM5Ejfj2TDHdKzqyO5yE38fCQjnFVRrmaGa53K8k1dOueIiKgkEcIBgmPM0/zzdgpTlLDqAbH%2B1y7fOnbz%2BRgh6qPLLWRYLGl6Upw7f75eQO56PWT7251C55JimRxaL%2B0KzjCXAbPQ3BBPwARcDo5DoNwd7WLYPK3LsD5wnw5BENo0EbJmIBBFooJwnCACc0jBEEAAcyTSDqyRwqksFcNI/BsGRRSIchqFcPwSggEUhFIdB5BwLAKBbEQaRDpQbiECQpAEHyPByMIYgSJwMjaYoKgaER5D6Fp7qkCwaTcHwMFwQhplCQA8kOilEO8NBHOoDE6gAtDq0hHMAqCoEcDGgkEq5eGwaQMIkuGlvwEk6GsGzPD8YxGoY3DceQvFdAJ/BCSJYkEURGwycgIDye5ylrugsXxaQ0TsHsPn%2BYFwWhUc1Ggvh2CqWQGkGIIOniJIBljUZaiaJJZmBOQlnWbZUmcfB5BFSh3CuQpN7oF5HUBUFIVhX1PDRY1cWMHcBIWGsyUVel2I4Ek2WcXlBUhFtJX2GVKXEeQpFwjq/XUfC0g8DwOo6vCPBBPDOVcHCjnzb9AOVYgEAoBgTU3fVuPXWMwAMSEOAAG4ELsABqBDYO6zmXIh%2BF0PQRCJKJEBxKZcSRC0ZyreQvOsKQZzOXEuj1BJ%2BG4xwwjOUw9AC/NOAZiYkgqwQWINOT2CifNgL1EOezIYWPSmfQBBxFZoteDgpnSgQvG8FJNBGMASi0/TjPMIL026ZNsjTcos2meZhjGKYti2IYVuibArAcCAcToJkRDkLrSS8Mk1GA%2Bge5CPrfnORYIk9FLORuEwnjeB0BjhEslTVAYGRZH0uS1wUWmt6UTDDE3YxaXUDT9As0wBEP5cj0wAytP3oxJEPY%2BdxPEyDPPKyLxsSjYfp9lcBtP3cN5vnHd1YURVFED4MQHwEkl5WSWl5AZa91AkSAcIUdIzFwvRWhaGkHCBGgUkafSkAAzaTluClXEhVaSWMcZXWagTZBN0QDAGolpCmVNsBewZkzP2DB2akE5tzeawt%2BaC0oaLcWksnCC1lswIgCslamVVpHDWyFCDa2cLrfWyFDaoGNqZM2nFkKW2tvzO2JtkrqWdnZAQ7tPZ0wIb7F2hkA76SDvIEOJl5r6AsBHEwaBo7WFjnEeOUBE6cBTmnDOYxs652fvnduRcS5l16JXCA7hx712rhvZu3cSjtz8cEtuORAmD26F40egwwkxIrnEuejcF4GHmPEle6SFhRK3psbYuwpD70PtArgJ9OonR6udVcN81KJQeo/VKH8qKUSom09p7SwGo0EjAv6cCn771LvlCB/FSmPQGQ40hldpBAA%3D%3D%3D


More information about the Gcc-testresults mailing list