re PR c++/27805 (ICE with ptr-to-member of incomplete class)
authorLee Millward <lee.millward@gmail.com>
Thu, 22 Jun 2006 17:48:41 +0000 (17:48 +0000)
committerLee Millward <lmillward@gcc.gnu.org>
Thu, 22 Jun 2006 17:48:41 +0000 (17:48 +0000)
PR c++/27805
* typeck2.c (build_m_component_ref): Use error_operand_p.

From-SVN: r114897

gcc/cp/ChangeLog
gcc/cp/typeck2.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/ptrmem6.C [new file with mode: 0644]

index ec07436f48ccc9bf0c5d6e07c0318748f2367849..96d71238bf5c75757ae98d3a8e689f3924af780c 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-22  Lee Millward  <lee.millward@gmail.com>
+
+       PR c++/27805
+       * typeck2.c (build_m_component_ref): Use error_operand_p.
+       
 2006-06-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR c++/28111
index f4de802c17d6f4e01b38d00c973172c99d9f92af..6ad4e8347aab4aba060f6490a5962a3e55ac1534 100644 (file)
@@ -1200,7 +1200,7 @@ build_m_component_ref (tree datum, tree component)
   tree binfo;
   tree ctype;
 
-  if (datum == error_mark_node || component == error_mark_node)
+  if (error_operand_p (datum) || error_operand_p (component))
     return error_mark_node;
 
   ptrmem_type = TREE_TYPE (component);
index 013608b262a449a0093ac079d60c82c5274d484a..1bab6ae1ffd14e59b4ca73d87023b494d2732627 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-22  Lee Millward  <lee.millward@gmail.com>
+
+       PR c++/27805
+       * g++.dg/parse/ptrmem6.C: New test.
+       
 2006-06-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR c++/28111
diff --git a/gcc/testsuite/g++.dg/parse/ptrmem6.C b/gcc/testsuite/g++.dg/parse/ptrmem6.C
new file mode 100644 (file)
index 0000000..6dac21c
--- /dev/null
@@ -0,0 +1,11 @@
+//PR C++/27805
+
+struct A;
+
+void foo()
+{
+    int A::* p;
+    A a; // { dg-error "incomplete type" }
+    a.*p;
+} 
+