[analyzer] Remove bogus assert: in C++11, 'new' can do list-initialization.

Previously, we asserted that whenever 'new' did not include a constructor
call, the type must be a non-record type. In C++11, however, uniform
initialization syntax (braces) allow 'new' to construct records with
list-initialization: "new Point{1, 2}".

Removing this assertion should be perfectly safe; the code here matches
what VisitDeclStmt does for regions allocated on the stack.

<rdar://problem/14403437>

llvm-svn: 186028
diff --git a/clang/test/Analysis/new.cpp b/clang/test/Analysis/new.cpp
index 8d3eee9..27cbb08 100644
--- a/clang/test/Analysis/new.cpp
+++ b/clang/test/Analysis/new.cpp
@@ -170,6 +170,16 @@
   c->f(0); // no-warning
 }
 
+void testAggregateNew() {
+  struct Point { int x, y; };
+  new Point{1, 2}; // no crash
+
+  Point p;
+  new (&p) Point{1, 2}; // no crash
+  clang_analyzer_eval(p.x == 1); // expected-warning{{TRUE}}
+  clang_analyzer_eval(p.y == 2); // expected-warning{{TRUE}}
+}
+
 //--------------------------------
 // Incorrectly-modelled behavior
 //--------------------------------