Change CGDebugInfo::setLocation to just ignore invalid locations. This
simplifies clients.

Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57684 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index 57e9c39..fd2e357 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -130,8 +130,7 @@
   // Emit global variable debug descriptor for static vars.
   CGDebugInfo *DI = CGM.getDebugInfo();
   if(DI) {
-    if(D.getLocation().isValid())
-      DI->setLocation(D.getLocation());
+    DI->setLocation(D.getLocation());
     DI->EmitGlobalVariable(static_cast<llvm::GlobalVariable *>(GV), &D);
   }
 
@@ -177,8 +176,7 @@
   // Emit debug info for local var declaration.
   CGDebugInfo *DI = CGM.getDebugInfo();
   if(DI) {
-    if(D.getLocation().isValid())
-      DI->setLocation(D.getLocation());
+    DI->setLocation(D.getLocation());
     DI->EmitDeclare(&D, llvm::dwarf::DW_TAG_auto_variable,
                     DeclPtr, Builder);
   }
@@ -235,8 +233,7 @@
   // Emit debug info for param declaration.
   CGDebugInfo *DI = CGM.getDebugInfo();
   if(DI) {
-    if(D.getLocation().isValid())
-      DI->setLocation(D.getLocation());
+    DI->setLocation(D.getLocation());
     DI->EmitDeclare(&D, llvm::dwarf::DW_TAG_arg_variable,
                     DeclPtr, Builder);
   }