Add noreturn as a type attribute, handle printing for them and handle
calls to noreturn function pointers when CFG building.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77089 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/return.c b/test/Sema/return.c
index fd50d07..db83a06 100644
--- a/test/Sema/return.c
+++ b/test/Sema/return.c
@@ -158,6 +158,7 @@
 } // expected-warning {{control reaches end of non-void function}}
 
 int j;
+void (*fptr)() __attribute__((noreturn));
 int test27() {
   switch (j) {
   case 1:
@@ -178,6 +179,9 @@
   case 5:
     while (1) { return 1; }
     break;
+  case 6:
+    fptr();
+    break;
   default:
     return 1;
   }