the __gnuc_inline__ attribute is actually named __gnu_inline__,
PR4023


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69618 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 1a52ba2..0526e78 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -240,7 +240,7 @@
   
   // If the inline function explicitly has the GNU inline attribute on it, then
   // force to GNUC semantics (which is strong external), regardless of language.
-  if (FD->hasAttr<GNUCInlineAttr>())
+  if (FD->hasAttr<GNUInlineAttr>())
     return CodeGenModule::GVA_StrongExternal;
 
   // The definition of inline changes based on the language.  Note that we
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp
index 391937b..3975747 100644
--- a/lib/Frontend/PCHReader.cpp
+++ b/lib/Frontend/PCHReader.cpp
@@ -2186,7 +2186,7 @@
       break;
     }
 
-    SIMPLE_ATTR(GNUCInline);
+    SIMPLE_ATTR(GNUInline);
     
     case Attr::IBOutletKind:
       New = ::new (Context) IBOutletAttr();
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp
index afe77ae..9f6c4c1 100644
--- a/lib/Frontend/PCHWriter.cpp
+++ b/lib/Frontend/PCHWriter.cpp
@@ -1696,7 +1696,7 @@
       break;
     }
 
-    case Attr::GNUCInline:
+    case Attr::GNUInline:
     case Attr::IBOutletKind:
     case Attr::NoReturn:
     case Attr::NoThrow:
diff --git a/lib/Parse/AttributeList.cpp b/lib/Parse/AttributeList.cpp
index b49399e..5797a15 100644
--- a/lib/Parse/AttributeList.cpp
+++ b/lib/Parse/AttributeList.cpp
@@ -105,13 +105,13 @@
     if (!memcmp(Str, "destructor", 10)) return AT_destructor;
     if (!memcmp(Str, "format_arg", 10))
       return IgnoredAttribute; // FIXME: printf format string checking.
+    if (!memcmp(Str, "gnu_inline", 10)) return AT_gnu_inline;
     break;
   case 11:
     if (!memcmp(Str, "weak_import", 11)) return AT_weak_import;
     if (!memcmp(Str, "vector_size", 11)) return AT_vector_size;
     if (!memcmp(Str, "constructor", 11)) return AT_constructor;
     if (!memcmp(Str, "unavailable", 11)) return AT_unavailable;
-    if (!memcmp(Str, "gnuc_inline", 11)) return AT_gnuc_inline;
     break;
   case 12:
     if (!memcmp(Str, "overloadable", 12)) return AT_overloadable;
diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp
index f16d343..290c58e 100644
--- a/lib/Sema/SemaDeclAttr.cpp
+++ b/lib/Sema/SemaDeclAttr.cpp
@@ -1455,7 +1455,7 @@
   d->addAttr(::new (S.Context) NoinlineAttr());
 }
 
-static void HandleGNUCInlineAttr(Decl *d, const AttributeList &Attr, Sema &S) {
+static void HandleGNUInlineAttr(Decl *d, const AttributeList &Attr, Sema &S) {
   // check the attribute arguments.
   if (Attr.getNumArgs() != 0) {
     S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << 0;
@@ -1465,21 +1465,21 @@
   FunctionDecl *Fn = dyn_cast<FunctionDecl>(d);
   if (Fn == 0) {
     S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
-      << "gnuc_inline" << 0 /*function*/;
+      << "gnu_inline" << 0 /*function*/;
     return;
   }
   
   if (!Fn->isInline()) {
-    S.Diag(Attr.getLoc(), diag::warn_gnuc_inline_attribute_requires_inline);
+    S.Diag(Attr.getLoc(), diag::warn_gnu_inline_attribute_requires_inline);
     return;
   }
   
   if (Fn->getStorageClass() == FunctionDecl::Extern) {
-    S.Diag(Attr.getLoc(), diag::warn_gnuc_inline_attribute_extern_inline);
+    S.Diag(Attr.getLoc(), diag::warn_gnu_inline_attribute_extern_inline);
     return;
   }
   
-  d->addAttr(::new (S.Context) GNUCInlineAttr());
+  d->addAttr(::new (S.Context) GNUInlineAttr());
 }
 
 static void HandleRegparmAttr(Decl *d, const AttributeList &Attr, Sema &S) {
@@ -1549,7 +1549,7 @@
     break;
   case AttributeList::AT_fastcall:    HandleFastCallAttr  (D, Attr, S); break;
   case AttributeList::AT_format:      HandleFormatAttr    (D, Attr, S); break;
-  case AttributeList::AT_gnuc_inline: HandleGNUCInlineAttr(D, Attr, S); break;
+  case AttributeList::AT_gnu_inline:  HandleGNUInlineAttr(D, Attr, S); break;
   case AttributeList::AT_mode:        HandleModeAttr      (D, Attr, S); break;
   case AttributeList::AT_nonnull:     HandleNonNullAttr   (D, Attr, S); break;
   case AttributeList::AT_noreturn:    HandleNoReturnAttr  (D, Attr, S); break;