Add an assert that we have a scope that matters for methods
authorEric Christopher <echristo@gmail.com>
Tue, 15 Oct 2013 23:31:36 +0000 (23:31 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 15 Oct 2013 23:31:36 +0000 (23:31 +0000)
and remove a call to getNonCompileUnitScope as a method
shouldn't be in the compile unit scope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192748 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/DIBuilder.cpp

index ffac183928e6b3c01072c068beb744fb3c03e1a0..bdbba1b36e3c078e3400764eb1bccd4e18a43017 100644 (file)
@@ -1113,11 +1113,14 @@ DISubprogram DIBuilder::createMethod(DIDescriptor Context, StringRef Name,
                                      MDNode *TParam) {
   assert(Ty.getTag() == dwarf::DW_TAG_subroutine_type &&
          "function types should be subroutines");
+  assert(getNonCompileUnitScope(Context) &&
+         "Methods should have both a Context and a context that isn't "
+         "the compile unit.");
   Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) };
   Value *Elts[] = {
     GetTagConstant(VMContext, dwarf::DW_TAG_subprogram),
     F.getFileNode(),
-    DIScope(getNonCompileUnitScope(Context)).getRef(),
+    DIScope(Context).getRef(),
     MDString::get(VMContext, Name),
     MDString::get(VMContext, Name),
     MDString::get(VMContext, LinkageName),