Correct -Winfinite-recursion warning on potentially-unevaluated operand
authorPrathit Aswar <snaswar0201@gmail.com>
Thu, 30 Jun 2022 13:07:49 +0000 (09:07 -0400)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 30 Jun 2022 13:09:28 +0000 (09:09 -0400)
commitcde1df4ca4f233f1069041ed1646779e9ff1ad7d
tree0424b419d9217193ea3244d06c607c4111a748f5
parent014c4bdb9d29ad82dc983c1fc9822585b2def842
Correct -Winfinite-recursion warning on potentially-unevaluated operand

Fixing issue "incorrect -Winfinite-recursion warning on potentially-
unevaluated operand".

We add a dedicated visit function (VisitCXXTypeidExpr) for typeid,
instead of using the default (VisitStmt). In this new function we skip
over building the CFG for unevaluated operands of typeid.

Fixes #21668

Differential Revision: https://reviews.llvm.org/D128747
clang/docs/ReleaseNotes.rst
clang/lib/Analysis/CFG.cpp
clang/test/SemaCXX/warn-infinite-recursion.cpp