/cp
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Apr 2016 09:58:45 +0000 (09:58 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Apr 2016 09:58:45 +0000 (09:58 +0000)
2016-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70540
* semantics.c (process_outer_var_ref): Unconditionally return
error_mark_node when mark_used returns false.

/testsuite
2016-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70540
* g++.dg/cpp0x/auto48.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@235552 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/auto48.C [new file with mode: 0644]

index dc2de76..8070896 100644 (file)
@@ -1,3 +1,9 @@
+2016-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/70540
+       * semantics.c (process_outer_var_ref): Unconditionally return
+       error_mark_node when mark_used returns false.
+
 2016-04-27  Release Manager
 
        * GCC 6.1.0 released.
index 019dd45..e59b3c5 100644 (file)
@@ -3276,7 +3276,7 @@ process_outer_var_ref (tree decl, tsubst_flags_t complain)
   tree initializer = convert_from_reference (decl);
 
   /* Mark it as used now even if the use is ill-formed.  */
-  if (!mark_used (decl, complain) && !(complain & tf_error))
+  if (!mark_used (decl, complain))
     return error_mark_node;
 
   bool saw_generic_lambda = false;
index 44affe1..b319440 100644 (file)
@@ -1,3 +1,8 @@
+2016-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/70540
+       * g++.dg/cpp0x/auto48.C: New.
+
 2016-04-27  Dominique d'Humieres  <dominiq@lps.ens.fr>
 
        * gfortran.dg/submodule_14.f08: Add cleanup-submodules.
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto48.C b/gcc/testsuite/g++.dg/cpp0x/auto48.C
new file mode 100644 (file)
index 0000000..3e0b9ff
--- /dev/null
@@ -0,0 +1,8 @@
+// PR c++/70540
+// { dg-do compile { target c++11 } }
+
+void
+foo ()
+{
+  auto f = [&] { return f; };  // { dg-error "before deduction" }
+}