2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* init.c (build_new_1, build_vec_delete_1, build_delete):
Use nullptr_node.
/testsuite
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New.
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
* doc/invoke.texi ([Option Summary, C++ Language Options]):
Add -Wzero-as-null-pointer-constant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181214
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * doc/invoke.texi ([Option Summary, C++ Language Options]):
+ Add -Wzero-as-null-pointer-constant.
+
2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* config/arm/arm-cores.def: Add -mcpu=cortex-a7.
+2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51045
+ * init.c (build_new_1, build_vec_delete_1, build_delete):
+ Use nullptr_node.
+
+2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51047
+ * search.c (lookup_member): Change to take also a tsubst_flags_t
+ parameter.
+ (lookup_field, lookup_fnfields): Adjust calls.
+ * typeck.c (lookup_destructor, finish_class_member_access_expr,
+ build_ptrmemfunc_access_expr): Likewise.
+ * class.c (handle_using_decl, maybe_note_name_used_in_class):
+ Likewise.
+ * pt.c (resolve_typename_type): Likewise.
+ * semantics.c (lambda_function): Likewise.
+ * parser.c (cp_parser_perform_range_for_lookup,
+ cp_parser_lookup_name): Likewise.
+ * friend.c (make_friend_class): Likewise.
+ * name-lookup.c (pushdecl_maybe_friend_1, get_class_binding,
+ do_class_using_decl, lookup_qualified_name): Likewise.
+ * cp-tree.h (lookup_member): Adjust declaration.
+
2011-11-09 Dodji Seketeli <dodji@redhat.com>
PR c++/51027
{
tree ifexp = cp_build_binary_op (input_location,
NE_EXPR, alloc_node,
- integer_zero_node,
+ nullptr_node,
complain);
rval = build_conditional_expr (ifexp, rval, alloc_node,
complain);
fold_build2_loc (input_location,
NE_EXPR, boolean_type_node, base,
convert (TREE_TYPE (base),
- integer_zero_node)),
+ nullptr_node)),
body, integer_zero_node);
body = build1 (NOP_EXPR, void_type_node, body);
{
/* Handle deleting a null pointer. */
ifexp = fold (cp_build_binary_op (input_location,
- NE_EXPR, addr, integer_zero_node,
+ NE_EXPR, addr, nullptr_node,
complain));
if (ifexp == error_mark_node)
return error_mark_node;
-Weffc++ -Wstrict-null-sentinel @gol
-Wno-non-template-friend -Wold-style-cast @gol
-Woverloaded-virtual -Wno-pmf-conversions @gol
--Wsign-promo}
+-Wsign-promo -Wzero-as-null-pointer-constant}
@item Objective-C and Objective-C++ Language Options
@xref{Objective-C and Objective-C++ Dialect Options,,Options Controlling
--- /dev/null
+// PR c++/51045
+// { dg-options "-Wzero-as-null-pointer-constant" }
+
+template <typename T>
+struct A
+{
+ A() { t = new T; }
+
+ ~A()
+ {
+ delete t;
+ }
+ T* t;
+};
+
+template <typename T>
+struct B
+{
+ B() { t = new T[1]; }
+
+ ~B()
+ {
+ delete [] t;
+ }
+ T* t;
+};
+
+template <typename Type>
+class Variant
+{
+ Type t;
+};
+
+class Op;
+
+typedef Variant<A<Op> > vara;
+typedef Variant<B<Op> > varb;
+
+class Op
+{
+ vara x;
+ varb y;
+};
+
+int main()
+{
+ vara a;
+ varb b;
+}