[cfe-dev] DeclarationName and the StringRef.
Umesh Kalappa via cfe-dev
cfe-dev at lists.llvm.org
Wed Dec 21 05:01:28 PST 2016
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 .
Thank you
~Umesh
On Wed, Dec 21, 2016 at 4:34 PM, Umesh Kalappa <umesh.kalappa0 at gmail.com>
wrote:
> Hi Guys ,
>
> We have the function that accepts StringRef and construct
> the DeclarationName instance .
>
> Currenlty we are achieving the same as ,the code snap
>
> void appendExtern(StringRef Sr)
> {
> char *ExternChar = const_cast<char *> (Sr.data());
> *Ptr =reinterpret_cast<void *>(ExternChar);
>
> this->ExternName = DeclarationName::getFromOpaquePtr(Ptr);
>
> }
>
> There is, any better way of achieving this ,because the above code is
> crashing intermittently ?
>
> Thank you and any help here appreciated.
> ~Umesh
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20161221/f9e2a65a/attachment.html>
More information about the cfe-dev
mailing list