Issue |
144856
|
Summary |
Incorrect source range for explicit object calls when callee is pointer
|
Labels |
new issue
|
Assignees |
|
Reporter |
necto
|
In Clang v20.1.7, the issue range for explicit object calls has been improved for `.` calls, but not for the `->` calls. As you can observe on [Compiler Explorer](https://godbolt.org/#z:OYLghAFBqd5TKALEBjA9gEwKYFFMCWALugE4A0BIEAZgQDbYB2AhgLbYgDkAjF%2BTXRMiAZVQtGIHgBYBQogFUAztgAKAD24AGfgCsp5eiyahUAUgBMAIUtXyKxqiIEh1ZpgDC6egFc2TA3cAGQImbAA5PwAjbFIpLXIAB3QlYhcmL19/A2TU5yEQsMi2GLieBIdsJ3SRIhZSIky/AJ57bEd8plr6okKI6NiDJTqGpuzW4Z6%2B4tKpAEp7dB9SVE4uYdIfJwBqXHVE%2BgJUYgAVJAIlbbMAdhstAEFt7YA3dAJMbY4S2Igic8u9gcjqd/tsMExhpYAGzbBw0OZmADMd3uNwAIkiUWYHq93tsiNhhjwIIDDsciGcLgAqbaJIgUXb7Mkgi7Q7akbA0ciMoHkymXZ4SOZXW7Yx60%2BkAWiRuC%2BpQgCOR2wA9MrtlZsMBQtsyNsPBJ6IDSOzjMBsNsLtt6CkiAA6MVPDk0W1yn6KqwqtUASTYiVI6Ge2A%2BpFN2AdLwkLuw31ICsxnu2Pr9AaDJpMYYe6LFXAW9G4AFZ%2BAEuDpyOhuB5bLZYUsVubLIi%2BOQiNocwsANbxBJ5rjSfhsEAWKG2ngATgs5VH0gAHOUodP8zxruRi6Xy1x%2BEoQAkWyWc%2BQ4LAUBhfQxYpRqCfEme4qgjCYx%2BUBAwCaQtxAoq3yFFQvUAJ7cE2P6sKQf4APJRLoVS7k2J4cMIYFMPQAF7uQOBRD4wD6vQ9Bbrw/A4GwpqSKhhActUgZ4aW2DqFUPgEoB/ChASPalocUQhqBXg4F%2B9IEAO%2BHkIGpBRCk2BotGxGhKAe4LDQRjAEoABqBDYAA7mBiTMIxcjCGIEicE%2BgjCMoaiaKh%2BitPephVtYhgEFEW6QAs6B0ukeGSsMmBImi5jWLYFiIvwKakKQ7yEvACyVNUrgQO4YwtOQwShP0MY5CkaRCAl6V5Ok0wDGUbQdDUIyNN4zRDO00ElVMKUzIMEyldljW1UUBXzIsyyrB1PaFiuX7rts6jTlCkpQtIYLWdsY4jraWjbCShAkMaDY8HM/C7joCwQCgLDDBeEBXje4TsGsw2jeNk2mtNo6zdRS1kO8BjGaI4iSEZ8imRoX6WUV1WxfF5XjElTCYPlaWtLkmUZEDiVQ504OzBMVUxV0TWw5VxVCN0DSIw19jo1kiWTLjdXtWtzYctgT1aLmBZFgN3D3MM2wqepsRDSNY0TXe10zTwc0LfgxC6qt3JeKejArYFa0ba2cwdl2hjcH25ADhY0hzdIUKNhrPCLtIi6jvm/Woeum7bs28sHogO1oOgkvnlQh0O9eUtoNZFhaEZL6xO%2Bn6ocB/46UHoEQVBTg6XBzBEIhyFfuhmHYbhOmEcRaylmR1WUV%2BNF0QxgnMe0X7sZxf7cRnG1hQJTbCaJKgSURJiHCY1vySwilsxpWnFk2L36e9CQvV95mlvoFiGKaaC2XY7FOQqZZuUIHleT5fk2NYgXBcJYU4PPUUo50big81INg2TENJBlnSn/DeUX0jf2ozjZVE5j/1o61qWPyTr8VS1pM2oQyirWbqFNeoMzNtwTmF0eZTS9ndIWD1paNnWlbWSB5dr7WdkdKWJ0ODcHOtzK6JhtgIIFvdEWu9nryAHoZIen0VDfQsoOJ%2BR84onwxq0ZKQDH53yylwq%2BuUCgP3xtFToL9T7iJqoA7%2BYjCb/wJl/eqZQFj0mwNTTA246ZcD6quYKTMWZdw5kQy6vNSHkMFotKhVwZbi1djeWxiILBoM2m2ZWvZ%2ByDk1tcKE%2Btrizi0IiAJOstBQlNmubgFsdzW0PMge2jsKA4Ice7cxwAAD69IfBMHbM%2Begr5/ZflDihICv4w6QWglHB28FY5IRQpnbAGEsIGjwk2NOzdK5oQIORZwOdUJ51QPRNYTYi6sX4KXf8FdeLVx0nXMSjcpKtwwe3Tuqlu7aUEv3N69DdKKCYaPPQIBEST1buvWw9lHKRUXp0FeRBvKIl8jPLeZYd7hX3mw9Ix9PCCJ4XIwq/CYZv0htfe%2BvCxGHxkX/YG0jsalTxoVX%2BUi4WiNUZ1OsPV6YRIMVwGBxC0kLSyTk4U1jlpONlugramCQB7SIAdXBsR8FnS5mYqavxNhEv4EGKhT1WhbIMvEXZI8fpHI%2BQDThQKz7wpytDW%2BIKRFgoRRC2FPQpFKs/rIlRQwFHQuRQqjq6jNHaI8XoxmXBmZEFZmskxzK4HXTZdk9sxLhakrFnqFJHMGyIlcfLHRqt1Ym30WWKJ9hLZuIVuQTshtbTSACdOa4jZpDe3GoiWQPYgpYqDRuCl%2B44m5pQIQGgXJnZ8sHoK/ZJckBbispWgtNAiB/i0iAachhK00XpCwVyR8s2kErawntSha31sbc2/tbaQyds%2BRuHRJqoFcDRAQQtlr2bGlMba0h/NBaeTuWvWwto90vEuKukhwAyFaEQVu%2B5jzrB7ttHLWSCwkDYBYDgOIC9Oz5k1vmCcPAhwLlHNORE%2BYoThJ7H6kA%2BYEiBvNiGmJGC80gFrQdEtOzh7ltQvQXtE8MMDoXXWhtnBm3YbHR2pexZ%2BD9pFf2wd%2BGm3kFHeodtE7XBTuNZAyJc7cNLrUta2Bx7T3ntXg89eN6D24pZXawljrtgXrXjeu9W0H1PpfdQX1XiIMZug1uWDCmI3gc/d%2B39%2BZ/2AeAx49NUHg1hp0RYNj2L5PuOEqkVw0ggA%3D%3D), the object is included in the range for the `.` calls, but for the `->` call:
```C++
struct ExplicitThis {
void member(this ExplicitThis const& self);
};
void test1(ExplicitThis* ptr, ExplicitThis& ref, ExplicitThis val) {
ptr->member(); // Begin or CallExpr range is lost.
ref.member(); // Improved range
val.member(); // Improved range
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs