Fix unused function warning to handle used attributes and redeclarations. Update test case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96444 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/warn-unused-function.c b/test/Sema/warn-unused-function.c
index 81ea82d..1a2a50e 100644
--- a/test/Sema/warn-unused-function.c
+++ b/test/Sema/warn-unused-function.c
@@ -1,5 +1,4 @@
 // RUN: %clang_cc1 -fsyntax-only -Wunused-function -verify %s
-// XFAIL: *
 
 void foo() {}
 static void f2() {} 
@@ -14,4 +13,14 @@
 // FIXME: This will trigger a warning when it should not.
 // Update once PR6281 is fixed.
 //inline static void f4();
-//void f4() { } 
+//void f4() { }
+
+static void __attribute__((used)) f5() {}
+static void f6();
+static void __attribute__((used)) f6();
+static void f6() {};
+
+static void f7(void);
+void f8(void(*a0)(void));
+void f9(void) { f8(f7); }
+static void f7(void) {}