StepfenShawn wrote:

@yronglin  Thanks for the review! I think there may be a misunderstanding about 
the intent of this patch — let me clarify.

This is not a fix for a known crash. There is no existing reproducer, and 
that's intentional.

The current call sites always pass a valid directive token, so 
`getIdentifierInfo()` never returns `nullptr` today. The patch is a defensive 
hardening change, not a bug fix. My purpose is to:

* Make the implicit assumption explicit — the code currently silently assumes 
`getIdentifierInfo()` is non-null. The assert documents this contract clearly 
for future readers and contributors.
* Catch regressions early — if a future caller (e.g., a new preprocessor hook, 
a plugin, or a refactor) accidentally passes an invalid token, the assert will 
fire immediately at the call site with a clear message, rather than causing a 
hard-to-diagnose null pointer dereference deep in a `switch` statement.

This pattern is common in LLVM/Clang for documenting and enforcing API 
contracts. 

https://github.com/llvm/llvm-project/pull/192051
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to