Fix USRs for 'extern' variables declaration in functions/method bodies.
Fix USRs for @synthesize.
Add more USR tests.

llvm-svn: 101954
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index c15b69c..4941816 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -372,12 +372,13 @@
   VisitorData *Data = (VisitorData *)ClientData;
   if (!Data->Filter || (C.kind == *(enum CXCursorKind *)Data->Filter)) {
     CXString USR = clang_getCursorUSR(C);
-    if (!clang_getCString(USR)) {
+    const char *cstr = clang_getCString(USR);
+    if (!cstr || cstr[0] == '\0') {
       clang_disposeString(USR);
       return CXChildVisit_Recurse;
     }
-    printf("// %s: %s %s", FileCheckPrefix, GetCursorSource(C),
-                           clang_getCString(USR));
+    printf("// %s: %s %s", FileCheckPrefix, GetCursorSource(C), cstr);
+
     PrintCursorExtent(C);
     printf("\n");
     clang_disposeString(USR);