r237475 - Use llvm::StringSwitch<std::string> to take advantage of implicit asserting conversion to std::string.

Craig Topper craig.topper at gmail.com
Fri May 15 14:58:26 PDT 2015


Doesn't that create a temporary string object for each case? Though maybe
short string optimization would avoid heap allocation?

On Fri, May 15, 2015 at 1:11 PM, Peter Collingbourne <peter at pcc.me.uk>
wrote:

> Author: pcc
> Date: Fri May 15 15:11:18 2015
> New Revision: 237475
>
> URL: http://llvm.org/viewvc/llvm-project?rev=237475&view=rev
> Log:
> Use llvm::StringSwitch<std::string> to take advantage of implicit
> asserting conversion to std::string.
>
> Modified:
>     cfe/trunk/lib/Sema/SemaDeclAttr.cpp
>
> Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=237475&r1=237474&r2=237475&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Fri May 15 15:11:18 2015
> @@ -4381,13 +4381,11 @@ static void handleNoSanitizeAttr(Sema &S
>  static void handleNoSanitizeSpecificAttr(Sema &S, Decl *D,
>                                           const AttributeList &Attr) {
>    std::string SanitizerName =
> -      llvm::StringSwitch<const char *>(Attr.getName()->getName())
> +      llvm::StringSwitch<std::string>(Attr.getName()->getName())
>            .Case("no_address_safety_analysis", "address")
>            .Case("no_sanitize_address", "address")
>            .Case("no_sanitize_thread", "thread")
> -          .Case("no_sanitize_memory", "memory")
> -          .Default("");
> -  assert(!SanitizerName.empty());
> +          .Case("no_sanitize_memory", "memory");
>    D->addAttr(::new (S.Context)
>                   NoSanitizeAttr(Attr.getRange(), S.Context,
> &SanitizerName, 1,
>                                  Attr.getAttributeSpellingListIndex()));
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>



-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150515/eecaac02/attachment.html>


More information about the cfe-commits mailing list