|
@@ -1512,13 +1512,14 @@ TEST_F(DISubprogramTest, get) {
|
|
|
MDTuple *TemplateParams = getTuple();
|
|
|
DISubprogram *Declaration = getSubprogram();
|
|
|
MDTuple *Variables = getTuple();
|
|
|
+ MDTuple *ThrownTypes = getTuple();
|
|
|
DICompileUnit *Unit = getUnit();
|
|
|
|
|
|
- auto *N = DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables);
|
|
|
+ auto *N = DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit,
|
|
|
+ IsDefinition, ScopeLine, ContainingType, Virtuality, VirtualIndex,
|
|
|
+ ThisAdjustment, Flags, IsOptimized, Unit, TemplateParams, Declaration,
|
|
|
+ Variables, ThrownTypes);
|
|
|
|
|
|
EXPECT_EQ(dwarf::DW_TAG_subprogram, N->getTag());
|
|
|
EXPECT_EQ(Scope, N->getScope());
|
|
@@ -1540,98 +1541,109 @@ TEST_F(DISubprogramTest, get) {
|
|
|
EXPECT_EQ(TemplateParams, N->getTemplateParams().get());
|
|
|
EXPECT_EQ(Declaration, N->getDeclaration());
|
|
|
EXPECT_EQ(Variables, N->getVariables().get());
|
|
|
- EXPECT_EQ(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ EXPECT_EQ(ThrownTypes, N->getThrownTypes().get());
|
|
|
+ EXPECT_EQ(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
|
|
|
EXPECT_NE(N, DISubprogram::get(
|
|
|
Context, getCompositeType(), Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(
|
|
|
Context, Scope, "other", LinkageName, File, Line, Type,
|
|
|
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
- EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, "other", File, Line,
|
|
|
- Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, "other", File, Line, Type,
|
|
|
+ IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(
|
|
|
Context, Scope, Name, LinkageName, getFile(), Line, Type,
|
|
|
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(
|
|
|
Context, Scope, Name, LinkageName, File, Line + 1, Type,
|
|
|
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
- EXPECT_NE(N,
|
|
|
- DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- getSubroutineType(), IsLocalToUnit, IsDefinition,
|
|
|
- ScopeLine, ContainingType, Virtuality,
|
|
|
- VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
- EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, !IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, IsLocalToUnit, !IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ getSubroutineType(), IsLocalToUnit,
|
|
|
+ IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment,
|
|
|
+ Flags, IsOptimized, Unit, TemplateParams,
|
|
|
+ Declaration, Variables, ThrownTypes));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ !IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ IsLocalToUnit, !IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(
|
|
|
Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
IsLocalToUnit, IsDefinition, ScopeLine + 1, ContainingType,
|
|
|
Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
- Unit, TemplateParams, Declaration, Variables));
|
|
|
- EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- getCompositeType(), Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ IsLocalToUnit, IsDefinition, ScopeLine, getCompositeType(),
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality + 1, VirtualIndex,
|
|
|
ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ TemplateParams, Declaration, Variables,
|
|
|
+ ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality, VirtualIndex + 1,
|
|
|
ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ TemplateParams, Declaration, Variables,
|
|
|
+ ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality, VirtualIndex,
|
|
|
ThisAdjustment, Flags, !IsOptimized, Unit,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
+ TemplateParams, Declaration, Variables,
|
|
|
+ ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality, VirtualIndex,
|
|
|
ThisAdjustment, Flags, IsOptimized, nullptr,
|
|
|
- TemplateParams, Declaration, Variables));
|
|
|
- EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
- Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
- ContainingType, Virtuality, VirtualIndex,
|
|
|
- ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- getTuple(), Declaration, Variables));
|
|
|
+ TemplateParams, Declaration, Variables,
|
|
|
+ ThrownTypes));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, getTuple(), Declaration, Variables, ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality, VirtualIndex,
|
|
|
ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
- TemplateParams, getSubprogram(), Variables));
|
|
|
+ TemplateParams, getSubprogram(), Variables,
|
|
|
+ ThrownTypes));
|
|
|
EXPECT_NE(N, DISubprogram::get(Context, Scope, Name, LinkageName, File, Line,
|
|
|
Type, IsLocalToUnit, IsDefinition, ScopeLine,
|
|
|
ContainingType, Virtuality, VirtualIndex,
|
|
|
ThisAdjustment, Flags, IsOptimized, Unit,
|
|
|
TemplateParams, Declaration, getTuple()));
|
|
|
+ EXPECT_NE(N, DISubprogram::get(
|
|
|
+ Context, Scope, Name, LinkageName, File, Line, Type,
|
|
|
+ IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
|
|
+ Virtuality, VirtualIndex, ThisAdjustment, Flags, IsOptimized,
|
|
|
+ Unit, TemplateParams, Declaration, Variables, getTuple()));
|
|
|
|
|
|
TempDISubprogram Temp = N->clone();
|
|
|
EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp)));
|