the big refactoring bits of PR3782.

This introduces FunctionType::ExtInfo to hold the calling convention and the
noreturn attribute. The next patch will extend it to include the regparm
attribute and fix the bug.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99920 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGCall.h b/lib/CodeGen/CGCall.h
index 3d81165..235ff9c 100644
--- a/lib/CodeGen/CGCall.h
+++ b/lib/CodeGen/CGCall.h
@@ -122,13 +122,12 @@
     }
     template<class Iterator>
     static void Profile(llvm::FoldingSetNodeID &ID,
-                        unsigned CallingConvention,
-                        bool NoReturn,
+                        const FunctionType::ExtInfo &Info,
                         CanQualType ResTy,
                         Iterator begin,
                         Iterator end) {
-      ID.AddInteger(CallingConvention);
-      ID.AddBoolean(NoReturn);
+      ID.AddInteger(Info.getCC());
+      ID.AddBoolean(Info.getNoReturn());
       ResTy.Profile(ID);
       for (; begin != end; ++begin) {
         CanQualType T = *begin; // force iterator to be over canonical types