dmcardle wrote:

Hi @asmok-g, it was definitely not my intention to break any use cases where 
the analysis was behavior properly!

I wanted to verify that the prior release, which predates this change, 
understands smart pointer returns on trylock functions, but I'm having trouble 
finding a test case where the analysis behaves that way.  In this [example on 
godbolt.org] with Clang 18.1.0, I mocked up (1) a plain `unique_ptr` return 
value and (2) a nullable `unique_ptr` type alias. It looks like the analysis 
incorrectly emits an error for unguarded access in both scenarios.

Could you help  me construct an example of something that used to work and is 
now broken? Regardless, it still might make sense to add support for any return 
type that can be implicitly converted to bool.

[example on godbolt.org]: 
https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIMxqkrgAyeAyYAHI%2BAEaYxCAArAmkAA6oCoRODB7evv6BaRmOAqHhUSyx8Um2mPbFDEIETMQEOT5%2BATV1WY3NBKWRMXGJyQpNLW15nWN9A%2BWVIwCUtqhexMjsHAD0WwDUALJMyMTpu0S7jEzR9GeYY2HAu6hUu9GoBAi7AG7NeIYECieLw%2BmDOCGImCY6F2CiYVEwBAAnrtDGJERkFAA6EwaACCOPxZgAzHgXnIhNgAPpuXHKXEWACSwQZABUAJoE8xErA0cK7YIAeTcAGl6cFsLtJVLpTLZVLKZSmAQCMQ8NEvARMAqoKIUlc6IRERBzGYWBrMKoTYtrZziTywqDcUIKQAlFmU7AADTcwXJDIAalTBSKIJiw4tZQqlSq1ebtRAmAolC1Kbr9bRDRAFf7cZTcS6AOJCBXWxa27mYXmO53YN2UoQACXz2AAIpTg8LQ%2BG5ZKo8rVerNfHE8mCJSFAhmph0KmmHrogakVnKTm84Xi5TS%2BX7XyvT6/YH20LhZSAGJyCJuFkMgURLuYiPyxX92NDylQI4ARy8eAhs/ni5Gtmub5kWJY2niXI7qCjbNm2HZnheV43neYYPnKfYxoOWrvgmyDfr%2BWoTlOM5pguGZLsBa5gZuEGEhWVa7BeCHnpe163vej49r2z5YXGuEQvQiZasAjBxHgyD/ummZUaBG5bpBdqVg6ux7r6QgBlSLIumyLFIexqHdphA78VAKqIoq%2BE/n%2BZGAcuq5yeBZaKQxKmwS6raUtpunHohbEoZx0rGa%2BOFmcQFlftZRGThCpFztJlEriB65Oduym7t66maUeIrFh5ACKcgMh5LaBTx0YmW%2BUAQgREIKFJ5EyUl1HyXRUHpTBTYlTlwp5dghXFa2ZVBbxlWhRANVRfVxGxQ1dmySltHOfRtRKGljEdmKErcTtI0VSF8a0KgyAANZXPQbVKYxTquu6akHkGx7DU%2B%2B3YcOSZxGOFrIN4GRfFqR2nfZyU0Qp9HQbsN21u67meR2z0ysFb24SOn3jjF06UoDJ3Ay1qUuRD90aYeen%2BRxaFcbsSOmRA32/Xg/1Y8dJ2UlQXgMA4WS445S3rW5XVw75rHIeT3aRqNB24TNmPY6z7OcwI3OLWD7WMcxQv6QFFO7VTEvI1A7Oy2zHP1EroOXa5GX7sTWk6aTIuGeh1NVbTqg/V4f1auZRvy6bC3m8tqv83BXl2xrZOO5TzvjdLM7e8zcsm1z/utYHV0qUT2Udn1A0lcN0fxnTHsMwDzP1ZNhHoGbqd83ysPwceOdFXn2uI3rNOx0zp3l5gtXTtX%2BMrQw%2BBUJyeI7PyzMwpgLD/BJgICLQiK16CBZyPmLaeTmLo69xBe4cAXjNFgM4/MQFsQ8o7prxvW/5rvbevTTKRjofx%2BY2fbXj3sbjxY1jh3CeAwJeK9VKZQepSdWIo/IOzKvvaqtRIRKDmhRICzUeYq3TnXAWbYoEnmFgZBG8CJqIOEujEiKCmoOWVhfDquwb4uk3m2CwbIICqEpg/XWT8XZv2ICfSk0QjTsNoYxK%2BlIGFMMpCwthHDdrEJfpSXh/DBEyK/riCeHgWAsAEKAoQbgBTKEFiKLanDyovn1hABQaAUgy2ZudTAIiVK4jcLnTyuJTwslrAjHsxDIqV0VFQTUxAB68wJnQ5xrjmHYFPAKDy3jxbcPGn42asR%2BAQhCZgy2oIEIeRZHIF0EQhrsNMcQ2WEICBrHCFXYRacsn8kbh6cBTD4kJPMTTbG9Ui4nwyY4vkEQBReQbB5XEbYhDuOwOyPMERcTBDZBpIQGF24uwYKgSkHwIRQnHHCBEEVmBLwxGorkYR3ZYF2CYIkbg2DaPCuc7AY9cTMDYAoPUGxdgpAMGESk7M8Dfi1C/YgZyADsVhIJ4h%2BiOepxiLDigOOaVQQKQW4hSF4a4EkQAEklGMdAIAQDfN%2BZSf55y3BhAILcyULJwrBGZhACMmdDzeXtoQlUXgHHnMRZKL4qA8DQjkMA6ltLwE20gRERlAUyxEkRSYQFLY2X3PBUmXYFLETYxZHcAgCKMWws1PCs0lJZV4klCSlElJ6Hr0YZ5aRuqIznJbLsDQ%2Br8QGu%2BFy6EmoxgCNQJ4SkFoUh1QyIra1wLNWGpeBAXVmIlVUqBtaDVTrpRMD1ZYawDrZTht5djGlKapRSplU6nNnJpUOpzbsCe7ymCfLxSyglKp7mPLuC80EDAvC0AMNcL2iIbGKgzImWNuJi5GF2FEFt9iGSCGUCqM5CQrBTvBUYHFhgVlNE1MaMwZgh2tvoFaEwCQZU7rOUSW1WKcWVr%2BTWi5JLblFrBQYBVm1oUSn2HC3tyLUXIHRU69dI6x0TsjfysB1tsoMvDrA5lrKJWas5dypifLo3/qyoePBMDCHislYW8DoLcTysBEqlVare2Skfdq3Yuqs1GoTaa2%2BzDWFWv3ba%2B16HHW4g5S6247q3hep9X6rmgb2VSlJLsMNXhKQRspfynjwapQJuTUmhjqahOYnTfyrNkp815sLZBNDqHbUTybcOttayO1ajEH8BQBIODLFoJwBIvA/DcF4KgTgbhpMWBhKsdYoIuQ8FIAQTQ5nlgnRAJIQFmJiSSEkESVdRIwsRbMNISzHBJA2d86QBzHBeAKBAIEHzHAtDLDgLAJAaAWApDoHEcglAislfoPEWdwAuAAA4uCBBoLQIJGWIDRGSwuZg4VOBee680REApojaEwA4PrvAitsEEAKYBiJktYHVMAX%2BLaMt2dIFgWeRhxA5d4PgCEnN/pra0EEVQY3zQTfIIIWoyWMzRGIINjwWBksxhYJd/6xA3hKBbDPQwwAMxzt28sKgBhgAKH9HgTAAB3AUNjbNef4IIEQYh2BSBkIIRQKh1C7dILoLg%2Bg/soGc/oNUGXIDLFQC/LIa2AC0WKbWmCTZYLgXBdg04AOpxBOMQG16zIToDp9spEbOWzkipDSOkjJmTshtV51AH3VRYDJzSroY36guGHpMPw%2BOQgOnmMMfHhRMgCC13oI39Q5hDHiPjuwauejjFaJ4doehbcKwaA7y3FQDe2Ad6bm3Hu9dW4kMsBQbmNjB/0FZpLOPUu7FUPVgAbDThPkhdi1d2A1zEXBMQaAE7gQgJAznEi4IsXg2XcvLAQPz4YKuAtcAAJyYnC5F6LLfwuR4S9Hk7qX0uZe875vLMBEAgFWAQZFBBysQEq6V4gERWCbHj0nlPaeDADogMyhgJ1S9BHwEQRXehEfCFEOINHh/MdqGS3j0gUOHspAmxZqPpBbPd84AKDU4%2BgRx8T8n1P6fM/Z9zwgE0SqziCLyJBLzLwH38xACJCJExFgIQMQKQI70Syf2Sx71sD73Lz8w7zMC73s04EgKB2WA%2B39T8EkCAA%3D%3D%3D

https://github.com/llvm/llvm-project/pull/95290
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to