versioner: properly handle declarations with no identifier.

Some declarations, like bitfield members, don't need identifiers.

Bug: https://github.com/android-ndk/ndk/issues/440
Test: ran versioner with -x c++ on a manually reduced <linux/timex.h>
Change-Id: Ic7eea780762cff653c54fdde4d10df203d630c25
diff --git a/tools/versioner/src/DeclarationDatabase.cpp b/tools/versioner/src/DeclarationDatabase.cpp
index 247e58b..aef4f55 100644
--- a/tools/versioner/src/DeclarationDatabase.cpp
+++ b/tools/versioner/src/DeclarationDatabase.cpp
@@ -54,17 +54,19 @@
       }
     }
 
-    if (mangler->shouldMangleDeclName(decl)) {
-      std::string mangled;
-      llvm::raw_string_ostream ss(mangled);
-      mangler->mangleName(decl, ss);
-      return mangled;
-    }
-
+    // The decl might not have a name (e.g. bitfields).
     if (auto identifier = decl->getIdentifier()) {
+      if (mangler->shouldMangleDeclName(decl)) {
+        std::string mangled;
+        llvm::raw_string_ostream ss(mangled);
+        mangler->mangleName(decl, ss);
+        return mangled;
+      }
+
       return identifier->getName();
     }
-    return "<error>";
+
+    return "<unnamed>";
   }
 
   bool VisitDecl(Decl* decl) {