[llvm-dev] DeclarationName and the StringRef.
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Wed Dec 21 10:04:15 PST 2016
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/20161221/4536114d/attachment.html>
More information about the llvm-dev
mailing list