@@ -1245,17 +1245,14 @@ CGDebugInfo::CollectTemplateParams(const TemplateParameterList *TPList,
1245
1245
switch (TA.getKind ()) {
1246
1246
case TemplateArgument::Type: {
1247
1247
llvm::MDType *TTy = getOrCreateType (TA.getAsType (), Unit);
1248
- llvm::DITemplateTypeParameter TTP =
1249
- DBuilder.createTemplateTypeParameter (TheCU, Name, TTy);
1250
- TemplateParams.push_back (TTP);
1248
+ TemplateParams.push_back (
1249
+ DBuilder.createTemplateTypeParameter (TheCU, Name, TTy));
1251
1250
} break ;
1252
1251
case TemplateArgument::Integral: {
1253
1252
llvm::MDType *TTy = getOrCreateType (TA.getIntegralType (), Unit);
1254
- llvm::DITemplateValueParameter TVP =
1255
- DBuilder.createTemplateValueParameter (
1256
- TheCU, Name, TTy,
1257
- llvm::ConstantInt::get (CGM.getLLVMContext (), TA.getAsIntegral ()));
1258
- TemplateParams.push_back (TVP);
1253
+ TemplateParams.push_back (DBuilder.createTemplateValueParameter (
1254
+ TheCU, Name, TTy,
1255
+ llvm::ConstantInt::get (CGM.getLLVMContext (), TA.getAsIntegral ())));
1259
1256
} break ;
1260
1257
case TemplateArgument::Declaration: {
1261
1258
const ValueDecl *D = TA.getAsDecl ();
@@ -1284,11 +1281,9 @@ CGDebugInfo::CollectTemplateParams(const TemplateParameterList *TPList,
1284
1281
CGM.getContext ().toCharUnitsFromBits ((int64_t )fieldOffset);
1285
1282
V = CGM.getCXXABI ().EmitMemberDataPointer (MPT, chars);
1286
1283
}
1287
- llvm::DITemplateValueParameter TVP =
1288
- DBuilder.createTemplateValueParameter (
1289
- TheCU, Name, TTy,
1290
- cast_or_null<llvm::Constant>(V->stripPointerCasts ()));
1291
- TemplateParams.push_back (TVP);
1284
+ TemplateParams.push_back (DBuilder.createTemplateValueParameter (
1285
+ TheCU, Name, TTy,
1286
+ cast_or_null<llvm::Constant>(V->stripPointerCasts ())));
1292
1287
} break ;
1293
1288
case TemplateArgument::NullPtr: {
1294
1289
QualType T = TA.getNullPtrType ();
@@ -1307,25 +1302,19 @@ CGDebugInfo::CollectTemplateParams(const TemplateParameterList *TPList,
1307
1302
V = CGM.getCXXABI ().EmitNullMemberPointer (MPT);
1308
1303
if (!V)
1309
1304
V = llvm::ConstantInt::get (CGM.Int8Ty , 0 );
1310
- llvm::DITemplateValueParameter TVP =
1311
- DBuilder.createTemplateValueParameter (TheCU, Name, TTy,
1312
- cast<llvm::Constant>(V));
1313
- TemplateParams.push_back (TVP);
1305
+ TemplateParams.push_back (DBuilder.createTemplateValueParameter (
1306
+ TheCU, Name, TTy, cast<llvm::Constant>(V)));
1314
1307
} break ;
1315
- case TemplateArgument::Template: {
1316
- llvm::DITemplateValueParameter TVP =
1317
- DBuilder.createTemplateTemplateParameter (
1318
- TheCU, Name, nullptr , TA.getAsTemplate ()
1319
- .getAsTemplateDecl ()
1320
- ->getQualifiedNameAsString ());
1321
- TemplateParams.push_back (TVP);
1322
- } break ;
1323
- case TemplateArgument::Pack: {
1324
- llvm::DITemplateValueParameter TVP = DBuilder.createTemplateParameterPack (
1308
+ case TemplateArgument::Template:
1309
+ TemplateParams.push_back (DBuilder.createTemplateTemplateParameter (
1325
1310
TheCU, Name, nullptr ,
1326
- CollectTemplateParams (nullptr , TA.getPackAsArray (), Unit));
1327
- TemplateParams.push_back (TVP);
1328
- } break ;
1311
+ TA.getAsTemplate ().getAsTemplateDecl ()->getQualifiedNameAsString ()));
1312
+ break ;
1313
+ case TemplateArgument::Pack:
1314
+ TemplateParams.push_back (DBuilder.createTemplateParameterPack (
1315
+ TheCU, Name, nullptr ,
1316
+ CollectTemplateParams (nullptr , TA.getPackAsArray (), Unit)));
1317
+ break ;
1329
1318
case TemplateArgument::Expression: {
1330
1319
const Expr *E = TA.getAsExpr ();
1331
1320
QualType T = E->getType ();
@@ -1334,10 +1323,8 @@ CGDebugInfo::CollectTemplateParams(const TemplateParameterList *TPList,
1334
1323
llvm::Constant *V = CGM.EmitConstantExpr (E, T);
1335
1324
assert (V && " Expression in template argument isn't constant" );
1336
1325
llvm::MDType *TTy = getOrCreateType (T, Unit);
1337
- llvm::DITemplateValueParameter TVP =
1338
- DBuilder.createTemplateValueParameter (
1339
- TheCU, Name, TTy, cast<llvm::Constant>(V->stripPointerCasts ()));
1340
- TemplateParams.push_back (TVP);
1326
+ TemplateParams.push_back (DBuilder.createTemplateValueParameter (
1327
+ TheCU, Name, TTy, cast<llvm::Constant>(V->stripPointerCasts ())));
1341
1328
} break ;
1342
1329
// And the following should never occur:
1343
1330
case TemplateArgument::TemplateExpansion:
@@ -1953,7 +1940,7 @@ llvm::MDType *CGDebugInfo::CreateTypeDefinition(const EnumType *Ty) {
1953
1940
1954
1941
SmallString<256 > FullName = getUniqueTagTypeName (Ty, CGM, TheCU);
1955
1942
1956
- // Create DIEnumerator elements for each enumerator.
1943
+ // Create elements for each enumerator.
1957
1944
SmallVector<llvm::Metadata *, 16 > Enumerators;
1958
1945
ED = ED->getDefinition ();
1959
1946
for (const auto *Enum : ED->enumerators ()) {
@@ -2401,7 +2388,7 @@ CGDebugInfo::getFunctionForwardDeclaration(const FunctionDecl *FD) {
2401
2388
return SP;
2402
2389
}
2403
2390
2404
- llvm::DIGlobalVariable
2391
+ llvm::MDGlobalVariable *
2405
2392
CGDebugInfo::getGlobalVariableForwardDeclaration (const VarDecl *VD) {
2406
2393
QualType T;
2407
2394
StringRef Name, LinkageName;
@@ -2411,11 +2398,9 @@ CGDebugInfo::getGlobalVariableForwardDeclaration(const VarDecl *VD) {
2411
2398
unsigned Line = getLineNumber (Loc);
2412
2399
2413
2400
collectVarDeclProps (VD, Unit, Line, T, Name, LinkageName, DContext);
2414
- llvm::DIGlobalVariable GV =
2415
- DBuilder.createTempGlobalVariableFwdDecl (DContext, Name, LinkageName, Unit,
2416
- Line, getOrCreateType (T, Unit),
2417
- !VD->isExternallyVisible (),
2418
- nullptr , nullptr );
2401
+ auto *GV = DBuilder.createTempGlobalVariableFwdDecl (
2402
+ DContext, Name, LinkageName, Unit, Line, getOrCreateType (T, Unit),
2403
+ !VD->isExternallyVisible (), nullptr , nullptr );
2419
2404
FwdDeclReplaceMap.emplace_back (
2420
2405
std::piecewise_construct,
2421
2406
std::make_tuple (cast<VarDecl>(VD->getCanonicalDecl ())),
@@ -2835,8 +2820,8 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, llvm::dwarf::Tag Tag,
2835
2820
Expr.push_back (offset.getQuantity ());
2836
2821
2837
2822
// Create the descriptor for the variable.
2838
- llvm::DIVariable D = DBuilder.createLocalVariable (
2839
- Tag, Scope, VD-> getName (), Unit, Line, Ty, ArgNo);
2823
+ auto * D = DBuilder.createLocalVariable (Tag, Scope, VD-> getName (), Unit,
2824
+ Line, Ty, ArgNo);
2840
2825
2841
2826
// Insert an llvm.dbg.declare into the current block.
2842
2827
DBuilder.insertDeclare (Storage, D, DBuilder.createExpression (Expr),
@@ -2859,7 +2844,7 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, llvm::dwarf::Tag Tag,
2859
2844
continue ;
2860
2845
2861
2846
// Use VarDecl's Tag, Scope and Line number.
2862
- llvm::DIVariable D = DBuilder.createLocalVariable (
2847
+ auto * D = DBuilder.createLocalVariable (
2863
2848
Tag, Scope, FieldName, Unit, Line, FieldTy,
2864
2849
CGM.getLangOpts ().Optimize , Flags, ArgNo);
2865
2850
@@ -2873,7 +2858,7 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, llvm::dwarf::Tag Tag,
2873
2858
}
2874
2859
2875
2860
// Create the descriptor for the variable.
2876
- llvm::DIVariable D =
2861
+ auto * D =
2877
2862
DBuilder.createLocalVariable (Tag, Scope, Name, Unit, Line, Ty,
2878
2863
CGM.getLangOpts ().Optimize , Flags, ArgNo);
2879
2864
@@ -2958,7 +2943,7 @@ void CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(
2958
2943
}
2959
2944
2960
2945
// Create the descriptor for the variable.
2961
- llvm::DIVariable D = DBuilder.createLocalVariable (
2946
+ auto * D = DBuilder.createLocalVariable (
2962
2947
llvm::dwarf::DW_TAG_auto_variable,
2963
2948
cast<llvm::MDLocalScope>(LexicalBlockStack.back ()), VD->getName (), Unit,
2964
2949
Line, Ty);
@@ -3121,7 +3106,7 @@ void CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(const CGBlockInfo &block,
3121
3106
auto *scope = cast<llvm::MDLocalScope>(LexicalBlockStack.back ());
3122
3107
3123
3108
// Create the descriptor for the parameter.
3124
- llvm::DIVariable debugVar = DBuilder.createLocalVariable (
3109
+ auto * debugVar = DBuilder.createLocalVariable (
3125
3110
llvm::dwarf::DW_TAG_arg_variable, scope, Arg->getName (), tunit, line,
3126
3111
type, CGM.getLangOpts ().Optimize , flags, ArgNo);
3127
3112
@@ -3162,10 +3147,10 @@ CGDebugInfo::getOrCreateStaticDataMemberDeclarationOrNull(const VarDecl *D) {
3162
3147
// / Recursively collect all of the member fields of a global anonymous decl and
3163
3148
// / create static variables for them. The first time this is called it needs
3164
3149
// / to be on a union and then from there we can have additional unnamed fields.
3165
- llvm::DIGlobalVariable CGDebugInfo::CollectAnonRecordDecls (
3150
+ llvm::MDGlobalVariable * CGDebugInfo::CollectAnonRecordDecls (
3166
3151
const RecordDecl *RD, llvm::MDFile *Unit, unsigned LineNo,
3167
3152
StringRef LinkageName, llvm::GlobalVariable *Var, llvm::MDScope *DContext) {
3168
- llvm::DIGlobalVariable GV ;
3153
+ llvm::MDGlobalVariable *GV = nullptr ;
3169
3154
3170
3155
for (const auto *Field : RD->fields ()) {
3171
3156
llvm::MDType *FieldTy = getOrCreateType (Field->getType (), Unit);
@@ -3201,7 +3186,7 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var,
3201
3186
3202
3187
// Attempt to store one global variable for the declaration - even if we
3203
3188
// emit a lot of fields.
3204
- llvm::DIGlobalVariable GV ;
3189
+ llvm::MDGlobalVariable *GV = nullptr ;
3205
3190
3206
3191
// If this is an anonymous union then we'll want to emit a global
3207
3192
// variable for each member of the anonymous union so that it's possible
@@ -3233,7 +3218,9 @@ void CGDebugInfo::EmitGlobalVariable(const ValueDecl *VD,
3233
3218
assert (isa<EnumType>(ED->getTypeForDecl ()) && " Enum without EnumType?" );
3234
3219
Ty = getOrCreateType (QualType (ED->getTypeForDecl (), 0 ), Unit);
3235
3220
}
3236
- // Do not use DIGlobalVariable for enums.
3221
+ // Do not use global variables for enums.
3222
+ //
3223
+ // FIXME: why not?
3237
3224
if (Ty->getTag () == llvm::dwarf::DW_TAG_enumeration_type)
3238
3225
return ;
3239
3226
// Do not emit separate definitions for function local const/statics.
@@ -3291,14 +3278,14 @@ void CGDebugInfo::EmitUsingDecl(const UsingDecl &UD) {
3291
3278
getLineNumber (USD.getLocation ()));
3292
3279
}
3293
3280
3294
- llvm::DIImportedEntity
3281
+ llvm::MDImportedEntity *
3295
3282
CGDebugInfo::EmitNamespaceAlias (const NamespaceAliasDecl &NA) {
3296
3283
if (CGM.getCodeGenOpts ().getDebugInfo () < CodeGenOptions::LimitedDebugInfo)
3297
- return llvm::DIImportedEntity () ;
3284
+ return nullptr ;
3298
3285
auto &VH = NamespaceAliasCache[&NA];
3299
3286
if (VH)
3300
3287
return cast<llvm::MDImportedEntity>(VH);
3301
- llvm::DIImportedEntity R;
3288
+ llvm::MDImportedEntity * R;
3302
3289
if (const NamespaceAliasDecl *Underlying =
3303
3290
dyn_cast<NamespaceAliasDecl>(NA.getAliasedNamespace ()))
3304
3291
// This could cache & dedup here rather than relying on metadata deduping.
0 commit comments