[PATCH] D146634: [clang][USR] Prevent crashes when parameter lists have nulls

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 23 05:22:28 PDT 2023


aaron.ballman added a comment.

In D146634#4215754 <https://reviews.llvm.org/D146634#4215754>, @kadircet wrote:

> I am aware that this null checking at leaves are not considered a sustainable solution and I agree with the sentiment there. But we're seeing an increasing number of crashes in production on invalid code recently. Happy to take a different course if there are alternatives, but as also explained in D146426 <https://reviews.llvm.org/D146426>, the situation around parameter lists having nullptrs seem to be the state for a long time now, e.g:
>
>   template <typename T> auto x = [](__fp16) {};
>   decltype(x<int>);
>
> is a reproducer that crashes even clang-12 due to a nullptr in the paremeter list. Surely it'd be better to fix this invariant, but I am afraid we don't know how to do that immediately and considering people have been dealing with this situation by adding null checks into the places that triggered crashes ever since, I'd like to move forward with this fix until someone can figure out the situation.

IMO, if the increasing number of crashes is a concern, now is the time to fix it properly instead of continuing to play whack-a-mole. To me, "fix it properly" means ensuring that we don't have null AST nodes, but if during investigation there's a more foundational problem that prevents us from doing that, we can make a different decision once we have more information.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146634/new/

https://reviews.llvm.org/D146634



More information about the cfe-commits mailing list