[llvm-dev] Semantics of __CFConstantStringClassReference variable (clang crash in PR38615)
Manoj Gupta via llvm-dev
llvm-dev at lists.llvm.org
Fri Aug 24 13:50:09 PDT 2018
+ llvm-dev .
Any ideas about the semantics of "__CFConstantStringClassReference" and the
best way to fix the clang crash issue.
Thanks,
Manoj
On Tue, Aug 21, 2018 at 5:08 PM Manoj Gupta <manojgupta at google.com> wrote:
> Hi,
>
> I am looking for some help regarding a clang crash when building
> opencflite. The root cause of the crash is because clang tries to create a
> GlobalValue "__CFConstantStringClassReference" but a variable of same name
> is also present in the source file.
>
> Crash location:
>
> https://github.com/llvm-mirror/clang/blob/master/lib/CodeGen/CodeGenModule.cpp#L4058
>
> // If we don't already have it, get __CFConstantStringClassReference.
> if (!CFConstantStringClassRef) {
> llvm::Type *Ty = getTypes().ConvertType(getContext().IntTy);
> Ty = llvm::ArrayType::get(Ty, 0);
> llvm::GlobalValue *GV = cast<llvm::GlobalValue>(
> CreateRuntimeVariable(Ty, "__CFConstantStringClassReference")); //
> Crashes here
>
> Opencflite also declares __CFConstantStringClassReference as a variable,
> https://github.com/nevali/opencflite/blob/03999700cf3b79975ae2f2e5f4100ea7096acb3a/CFInternal.h#L364
> :
>
> extern int __CFConstantStringClassReference[];
>
> I do not know the semantics of the name __CFConstantStringClassReference.
> Is this a reserved name and should opencflite not be declaring this
> variable ? If so, appreciate any advice on how to fix the offending code.
>
> Or is this a bug in clang?
>
> For reference, r327993 (https://reviews.llvm.org/rL327993) introduced
> this code.
>
> Author: Rafael Espindola <rafael.espindola at gmail.com>
> AuthorDate: Tue Mar 20 15:48:00 2018 +0000
>
> Set dso_local for CFConstantStringClassReference.
>
> This one cannot use setGVProperties since it has special logic for
> when it is dllimport or not.
> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@*327993*
> 91177308-0d34-0410-b5e6-96231b3b80d8
>
> Thanks,
> Manoj
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180824/e5f645a7/attachment.html>
More information about the llvm-dev
mailing list