Rework the way we handle constructor decls to be less hacky and fix PR3948 completely.

llvm-svn: 70516
diff --git a/clang/test/SemaCXX/constructor.cpp b/clang/test/SemaCXX/constructor.cpp
index 1429cc6..8f289a2 100644
--- a/clang/test/SemaCXX/constructor.cpp
+++ b/clang/test/SemaCXX/constructor.cpp
@@ -45,3 +45,16 @@
 struct mmst_reg{
  char mmst_reg[10];
 };
+
+// PR3948
+namespace PR3948 {
+// PR3948
+class a {
+  public:
+  int b(int a());
+};
+int x();
+void y() {
+  a z; z.b(x);
+}
+}