/// Each subprogram's preserved local variables.
DenseMap<MDNode *, std::vector<TrackingVH<MDNode>>> PreservedVariables;
- // Private use for multiple types of template parameters.
- DITemplateValueParameter
- createTemplateValueParameter(unsigned Tag, DIDescriptor Scope,
- StringRef Name, DIType Ty, Value *Val,
- MDNode *File = nullptr, unsigned LineNo = 0,
- unsigned ColumnNo = 0);
-
DIBuilder(const DIBuilder &) LLVM_DELETED_FUNCTION;
void operator=(const DIBuilder &) LLVM_DELETED_FUNCTION;
return DITemplateTypeParameter(MDNode::get(VMContext, Elts));
}
-DITemplateValueParameter
-DIBuilder::createTemplateValueParameter(unsigned Tag, DIDescriptor Context,
- StringRef Name, DIType Ty,
- Value *Val, MDNode *File,
- unsigned LineNo,
- unsigned ColumnNo) {
+static DITemplateValueParameter createTemplateValueParameterHelper(
+ LLVMContext &VMContext, unsigned Tag, DIDescriptor Context, StringRef Name,
+ DIType Ty, Value *Val, MDNode *File, unsigned LineNo, unsigned ColumnNo) {
Value *Elts[] = {
HeaderBuilder::get(Tag).concat(Name).concat(LineNo).concat(ColumnNo).get(
VMContext),
DIType Ty, Value *Val,
MDNode *File, unsigned LineNo,
unsigned ColumnNo) {
- return createTemplateValueParameter(dwarf::DW_TAG_template_value_parameter,
- Context, Name, Ty, Val, File, LineNo,
- ColumnNo);
+ return createTemplateValueParameterHelper(
+ VMContext, dwarf::DW_TAG_template_value_parameter, Context, Name, Ty, Val,
+ File, LineNo, ColumnNo);
}
DITemplateValueParameter
DIType Ty, StringRef Val,
MDNode *File, unsigned LineNo,
unsigned ColumnNo) {
- return createTemplateValueParameter(
- dwarf::DW_TAG_GNU_template_template_param, Context, Name, Ty,
+ return createTemplateValueParameterHelper(
+ VMContext, dwarf::DW_TAG_GNU_template_template_param, Context, Name, Ty,
MDString::get(VMContext, Val), File, LineNo, ColumnNo);
}
DIType Ty, DIArray Val,
MDNode *File, unsigned LineNo,
unsigned ColumnNo) {
- return createTemplateValueParameter(dwarf::DW_TAG_GNU_template_parameter_pack,
- Context, Name, Ty, Val, File, LineNo,
- ColumnNo);
+ return createTemplateValueParameterHelper(
+ VMContext, dwarf::DW_TAG_GNU_template_parameter_pack, Context, Name, Ty,
+ Val, File, LineNo, ColumnNo);
}
DICompositeType DIBuilder::createClassType(DIDescriptor Context, StringRef Name,