diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp
index 5b611e1..cafa67f 100644
--- a/lib/Sema/SemaDeclAttr.cpp
+++ b/lib/Sema/SemaDeclAttr.cpp
@@ -391,7 +391,7 @@
     return;
   }
 
-  if (!isFunctionOrMethod(d)) {
+  if (!isa<FunctionDecl>(d)) {
     S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
     << "always_inline" << 0 /*function*/;
     return;
@@ -485,8 +485,7 @@
     priority = Idx.getZExtValue();
   }
   
-  FunctionDecl *Fn = dyn_cast<FunctionDecl>(d);
-  if (!Fn) {
+  if (!isa<FunctionDecl>(d)) {
     S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
       << "constructor" << 0 /*function*/;
     return;
@@ -1447,7 +1446,7 @@
     return;
   }
   
-  if (!isFunctionOrMethod(d)) {
+  if (!isa<FunctionDecl>(d)) {
     S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
     << "noinline" << 0 /*function*/;
     return;
@@ -1463,12 +1462,23 @@
     return;
   }
   
-  if (!isFunctionOrMethod(d)) {
+  FunctionDecl *Fn = dyn_cast<FunctionDecl>(d);
+  if (Fn == 0) {
     S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
       << "gnuc_inline" << 0 /*function*/;
     return;
   }
   
+  if (!Fn->isInline()) {
+    S.Diag(Attr.getLoc(), diag::warn_gnuc_inline_attribute_requires_inline);
+    return;
+  }
+  
+  if (Fn->getStorageClass() == FunctionDecl::Extern) {
+    S.Diag(Attr.getLoc(), diag::warn_gnuc_inline_attribute_extern_inline);
+    return;
+  }
+  
   d->addAttr(::new (S.Context) GNUCInlineAttr());
 }
 
