r234262 changed some code in DIBuilderBindings.cpp to use the unwrap function
to unwrap debug metadata. The problem with this is that unwrap asserts that
its argument is non-null, which is not what we want in a number of places
in DIBuilder where the argument is optional. This change makes certain
arguments optional by adding null checks in places where it is required,
fixing the llgo build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234428
91177308-0d34-0410-b5e6-
96231b3b80d8
DIBuilder *D = unwrap(Dref);
DISubprogram SP = D->createFunction(
DIDescriptor(unwrap<MDScope>(Scope)), Name, LinkageName,
DIBuilder *D = unwrap(Dref);
DISubprogram SP = D->createFunction(
DIDescriptor(unwrap<MDScope>(Scope)), Name, LinkageName,
- unwrap<MDFile>(File), Line, unwrap<MDCompositeTypeBase>(CompositeType),
- IsLocalToUnit, IsDefinition, ScopeLine, Flags, IsOptimized,
- unwrap<Function>(Func));
+ File ? unwrap<MDFile>(File) : nullptr, Line,
+ unwrap<MDCompositeTypeBase>(CompositeType), IsLocalToUnit, IsDefinition,
+ ScopeLine, Flags, IsOptimized, unwrap<Function>(Func));
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File,
LLVMMetadataRef ParameterTypes) {
DIBuilder *D = unwrap(Dref);
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File,
LLVMMetadataRef ParameterTypes) {
DIBuilder *D = unwrap(Dref);
- DICompositeType CT = D->createSubroutineType(
- unwrap<MDFile>(File), DITypeArray(unwrap<MDTuple>(ParameterTypes)));
+ DICompositeType CT =
+ D->createSubroutineType(File ? unwrap<MDFile>(File) : nullptr,
+ DITypeArray(unwrap<MDTuple>(ParameterTypes)));
LLVMMetadataRef ElementTypes) {
DIBuilder *D = unwrap(Dref);
DICompositeType CT = D->createStructType(
LLVMMetadataRef ElementTypes) {
DIBuilder *D = unwrap(Dref);
DICompositeType CT = D->createStructType(
- DIDescriptor(unwrap<MDScope>(Scope)), Name, unwrap<MDFile>(File), Line,
- SizeInBits, AlignInBits, Flags, unwrap<MDType>(DerivedFrom),
- DIArray(unwrap<MDTuple>(ElementTypes)));
+ DIDescriptor(unwrap<MDScope>(Scope)), Name,
+ File ? unwrap<MDFile>(File) : nullptr, Line, SizeInBits, AlignInBits,
+ Flags, DerivedFrom ? unwrap<MDType>(DerivedFrom) : nullptr,
+ ElementTypes ? DIArray(unwrap<MDTuple>(ElementTypes)) : nullptr);
unsigned Flags) {
DIBuilder *D = unwrap(Dref);
DICompositeType CT = D->createReplaceableCompositeType(
unsigned Flags) {
DIBuilder *D = unwrap(Dref);
DICompositeType CT = D->createReplaceableCompositeType(
- Tag, Name, DIDescriptor(unwrap<MDScope>(Scope)), unwrap<MDFile>(File),
- Line, RuntimeLang, SizeInBits, AlignInBits, Flags);
+ Tag, Name, DIDescriptor(unwrap<MDScope>(Scope)),
+ File ? unwrap<MDFile>(File) : nullptr, Line, RuntimeLang, SizeInBits,
+ AlignInBits, Flags);
unsigned Flags, LLVMMetadataRef Ty) {
DIBuilder *D = unwrap(Dref);
DIDerivedType DT = D->createMemberType(
unsigned Flags, LLVMMetadataRef Ty) {
DIBuilder *D = unwrap(Dref);
DIDerivedType DT = D->createMemberType(
- DIDescriptor(unwrap<MDScope>(Scope)), Name, unwrap<MDFile>(File), Line,
- SizeInBits, AlignInBits, OffsetInBits, Flags, unwrap<MDType>(Ty));
+ DIDescriptor(unwrap<MDScope>(Scope)), Name,
+ File ? unwrap<MDFile>(File) : nullptr, Line, SizeInBits, AlignInBits,
+ OffsetInBits, Flags, unwrap<MDType>(Ty));
LLVMMetadataRef File, unsigned Line,
LLVMMetadataRef Context) {
DIBuilder *D = unwrap(Dref);
LLVMMetadataRef File, unsigned Line,
LLVMMetadataRef Context) {
DIBuilder *D = unwrap(Dref);
- DIDerivedType DT =
- D->createTypedef(unwrap<MDType>(Ty), Name, unwrap<MDFile>(File), Line,
- DIDescriptor(unwrap<MDScope>(Context)));
+ DIDerivedType DT = D->createTypedef(
+ unwrap<MDType>(Ty), Name, File ? unwrap<MDFile>(File) : nullptr, Line,
+ Context ? DIDescriptor(unwrap<MDScope>(Context)) : DIDescriptor());