[llvm-dev] DeclarationName and the StringRef.
Umesh Kalappa via llvm-dev
llvm-dev at lists.llvm.org
Wed Dec 21 20:07:38 PST 2016
Thank you eli, my bad will take care that next time.
On Dec 21, 2016 11:34 PM, "Friedman, Eli" <efriedma at codeaurora.org> wrote:
> On 12/21/2016 5:01 AM, Umesh Kalappa via llvm-dev wrote:
>
> To context was ,
>
> Basic requirement was to append extra string to the decl name and update
> all his references to the updated name. ,
>
> So we are constructing the DeclarationName instance as stated below code
> snap.
> and from DeclarationName instance ,we are constructing the
> DeclarationNameInfo and same info used to create decl spec
> with FunctionDecl::Create () .
>
> Question is ,
>
> How do ,someone instantiate the DeclarationName instance using StringRef
> ,because in the current trunk code snap ,we see that the DeclarationName
> can be constructed using the IdentifierInfo or Objc Selector or
> CXXOperatorId etc as argument in the constructor .
>
> The code i.e
>
> void appendExtern(StringRef Sr)
> {
> char *ExternChar = const_cast<char *> (Sr.data());
> *Ptr =reinterpret_cast<void *>(ExternChar);
>
> this->ExternName = DeclarationName::getFromOpaquePtr(Ptr);
>
> }
>
> the above is kind of hack ,may result in dangling memory references ,Any
> thoughts on this ?
>
> we thought to change the DeclarationName class ,with adding
> new DeclarationName constructor ,that construct the DeclarationName
> instance by StringRef as argument. i.e DeclarationName(StringRef Sr) ;
>
> Before doing this ,we thought to check with community for better
> alternative / suggestions .
>
>
> Usually it's better to send questions about the clang frontend to just
> cfe-dev, rather than llvm-dev.
>
> You can use IdentifierTable::get to get an IdentifierInfo for an arbitrary
> string, then make a DeclarationName from that.
>
> -Eli
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161222/441c4e50/attachment.html>
More information about the llvm-dev
mailing list