[analyzer][NFC] Fix dangling StringRef in barely used code
authorDonát Nagy <donat.nagy@ericsson.com>
Tue, 27 Jun 2023 15:49:44 +0000 (17:49 +0200)
committerDonát Nagy <donat.nagy@ericsson.com>
Fri, 30 Jun 2023 15:15:43 +0000 (17:15 +0200)
commit1d75b18843fbca52655e240a120b5fdeeef17c0e
treebee903cdd130d1c4677dde193d75fd4a61fa9bfb
parent0e93c4a5fd5825a16fd3c00f9f7942ec88412771
[analyzer][NFC] Fix dangling StringRef in barely used code

CheckerContext::getNoteTag has a shorthand version that takes a
plain 'StringRef Note' instead of a lambda that calculates the note.

The old implementation of this method was incorrect because it created a
lambda that captured the StringRef, which was dereferenced much later,
when the NoteTags were visited.

In the current codebase this does not cause errors because this method
is called only once, and there the `Note` argument is a string literal
that remains valid. However, I tried to use this method in a checker
that I was prototyping, and there it printed random memory junk (instead
of the message that I composed in a local variable).

Differential Revision: https://reviews.llvm.org/D153889
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h