[PATCH] D52988: [analyzer][PlistMacroExpansion] Part 5.: Support for # and ##

Whisperity via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 16 23:10:56 PDT 2018


whisperity added a comment.

Looks good.

What happens if the macro is to stringify a partially string argument?

  #define BOOYAH(x) #x ";
  
  ... 
  
  std::string foo = BOOYAH(blabla)
  std::string foo2 = BOOYAH("blabla)
  int x = 2;

Not sure if these cases are even valid C(XX), but if they are, we should test.

An idea for a follow-up patch if it's not that hard work: you mentioned your original approach with that madness in the HTML printer. Perhaps it could be refactored to use this implementation too and thus we'll only have 9 places where macro expansion logic is to be maintained, not 10. 😈


https://reviews.llvm.org/D52988





More information about the cfe-commits mailing list