[PATCH] D66186: [Sema] Don't warn on printf('%hd', [char]) (PR41467)

Nathan Huckleberry via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 22 15:56:35 PDT 2019


Nathan-Huckleberry marked an inline comment as done.
Nathan-Huckleberry added inline comments.


================
Comment at: clang/lib/Sema/SemaChecking.cpp:8100-8107
+        // All further checking is done on the subexpression
+        Match = AT.matchesType(S.Context, ExprTy);
+        if (Match) {
+          if (Match == analyze_printf::ArgType::NoMatchPedantic)
+            Pedantic = true;
+          else
+            return true;
----------------
Nathan-Huckleberry wrote:
> Nathan-Huckleberry wrote:
> > lebedev.ri wrote:
> > > lebedev.ri wrote:
> > > > Just add a new variable
> > > > ```
> > > > // All further checking is done on the subexpression
> > > > analyze_printf::ArgType::MatchKind Match2 = AT.matchesType(S.Context, ExprTy);
> > > > if (Match2 == analyze_printf::ArgType::Match)
> > > >   return true;
> > > > Pedantic |= Match2 == analyze_printf::ArgType::NoMatchPedantic;
> > > > ```
> > > Early return would simplify this still
> > Could be ArgType::NoMatch and wouldn't display a warning
> Wait this should definitely be an else-if
Nevermind you are correct. Will remove else case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66186





More information about the cfe-commits mailing list