MarcusJohnson91 added inline comments.

================
Comment at: clang/lib/AST/TemplateBase.cpp:77-80
+  const Decl *D = nullptr;
+  if (T->isTypedefNameType()) {
+    D = T->getAs<TypedefType>()->getDecl();
+  }
----------------
aaron.ballman wrote:
> This approach seems fragile for getting access to an AST context. I think 
> `TemplateArgument::print()` should likely be given an `const ASTContext &` 
> parameter instead.
Just switched it out, D was only used for the LangOpts() call anyway, so I just 
did it directly where it's needed instead of creating a variable


================
Comment at: 
clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp:791-808
+    
+    StringLiteral::StringKind Kind = FormatString->getKind();
+    
+    if (Kind == StringLiteral::Ascii || Kind == StringLiteral::UTF8) {
+      String = FormatString->getStringAsChar();
+    } else if (Kind == StringLiteral::UTF16) {
+      std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> 
Convert;
----------------
MarcusJohnson91 wrote:
> cor3ntin wrote:
> > I think this code is present in multiple places in your PR, could it be 
> > deduplicated?
> Yup, I've been working on that too; This was actually the first thing I 
> started with.
I've moved this code into StringLiteral::getStrDataAsChar(), so now it does the 
conversion if needed, and removed the big if/else chain in all the places it 
was used previously.

Oh, and I made StringLiteral::getStrDataAsChar() public in the StringLiteral 
and I forwarded it in FormatStringLiteral.


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

https://reviews.llvm.org/D103426

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to