Seems rather light on test cases.

  How does this interact with templates?


================
Comment at: lib/AST/Decl.cpp:2587
@@ +2586,3 @@
+// the function to be required.
+bool FunctionDecl::isMSExternInline() const {
+  const ASTContext &Context = getASTContext();
----------------
You've put this between the helper function `RedeclForcesDefC99` and the 
function that uses it; move it up above that function, please!

================
Comment at: lib/AST/Decl.cpp:2596
@@ +2595,3 @@
+  do {
+    IsInlineSpecified |= FD->isInlineSpecified();
+    IsExternSpecified |= FD->getStorageClass() == SC_Extern;
----------------
I assume the idea here is to compute whether any declaration has the `inline` 
keyword and to exclude the case where `inline` was implied by `constexpr` or by 
being defined inside a class definition. Please add tests for those cases.

================
Comment at: lib/AST/Decl.cpp:2598-2599
@@ +2597,4 @@
+    IsExternSpecified |= FD->getStorageClass() == SC_Extern;
+    if (IsInlineSpecified && IsExternSpecified)
+      break;
+  } while ((FD = FD->getPreviousDecl()));
----------------
Do we really hit this special case if the `extern` and `inline` keywords are on 
different declarations? (Again, add a test case please!)


http://llvm-reviews.chandlerc.com/D3207
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to