]> granicus.if.org Git - clang/commitdiff
<rdar://problem/13185264> Don't crash when attempting to redundantly initialize a...
authorDouglas Gregor <dgregor@apple.com>
Mon, 25 Mar 2013 23:28:23 +0000 (23:28 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 25 Mar 2013 23:28:23 +0000 (23:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177941 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/class-base-member-init.cpp

index 52ed28afb937eced2eccc91f15eebc06e2b11776..cc0aadeec29f4db16bf8155d8c4b55b30ce4f245 100644 (file)
@@ -3436,7 +3436,7 @@ bool CheckRedundantInit(Sema &S,
     return false;
   }
 
-  if (FieldDecl *Field = Init->getMember())
+  if (FieldDecl *Field = Init->getAnyMember())
     S.Diag(Init->getSourceLocation(),
            diag::err_multiple_mem_initialization)
       << Field->getDeclName()
index e84e57b7471b7654d8afb7470a40933896dfa225..2cdca829ffb9615e817c257257a14ff8ca6e37f2 100644 (file)
@@ -90,3 +90,11 @@ namespace test5 {
     }
   };
 }
+
+namespace rdar13185264 {
+  class X {
+    X() : a(), // expected-note{{previous initialization is here}}
+          a()  { } // expected-error{{multiple initializations given for non-static member 'a'}}
+    union { void *a; };
+  };
+}