slydiman wrote:

> Global variables are 
> [banned](https://llvm.org/docs/CodingStandards.html#do-not-use-static-constructors)
>  by the coding standards, but I wouldn't be surprised if there were still 
> some around that cause this.

TypeSystemClang.cpp contains global `char TypeSystemClang::ID;` and its 
constructor is GC root.

The dependencies chain looks like Module.cpp -> 
CPlusPlusLanguage::ExtractContextAndIdentifier() -> CPlusPlusLanguage.cpp -> 
CPlusPlusLanguage::GetHardcodedSynthetics() -> 
BlockPointerSyntheticFrontEndCreator -> BlockPointer.cpp -> TypeSystemClang::ID

GC can remove unused CPlusPlusLanguage::GetHardcodedSynthetics(), but 
TypeSystemClang and its dependencies will be kept.

https://github.com/llvm/llvm-project/pull/132274
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to