PR c++/42399
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Feb 2010 22:06:23 +0000 (22:06 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Feb 2010 22:06:23 +0000 (22:06 +0000)
* pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156635 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C [new file with mode: 0644]

index 42c0e9f..8fcb181 100644 (file)
@@ -1,5 +1,10 @@
 2010-02-09  Jason Merrill  <jason@redhat.com>
 
+       PR c++/42399
+       * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
+
+2010-02-09  Jason Merrill  <jason@redhat.com>
+
        PR c++/42370
        * decl2.c (change_return_type): New fn.
        * semantics.c (apply_lambda_return_type): Use it.
index b903f77..1327d54 100644 (file)
@@ -12674,6 +12674,8 @@ tsubst_copy_and_build (tree t,
        TREE_TYPE (r) = type;
        CLASSTYPE_LAMBDA_EXPR (type) = r;
 
+       LAMBDA_EXPR_LOCATION (r)
+         = LAMBDA_EXPR_LOCATION (t);
        LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (r)
          = LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (t);
        LAMBDA_EXPR_MUTABLE_P (r) = LAMBDA_EXPR_MUTABLE_P (t);
index b91829c..e1394f4 100644 (file)
@@ -1,5 +1,8 @@
 2010-02-09  Jason Merrill  <jason@redhat.com>
 
+       PR c++/42399
+       * g++.dg/cpp0x/lambda/lambda-errloc2.C: New.
+
        PR c++/42370
        * g++.dg/cpp0x/lambda/lambda-warn2.C: New.
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C
new file mode 100644 (file)
index 0000000..3d53c13
--- /dev/null
@@ -0,0 +1,19 @@
+// PR c++/42399
+// { dg-options "-std=c++0x" }
+
+struct A {
+  A();
+  A(const A&) = delete;                // { dg-error "deleted function" }
+};
+
+template <class T>
+void f()
+{
+  T t;
+  [t] { return 0; };           // { dg-error "used here" }
+}
+
+int main()
+{
+  f<A>();                      // { dg-message "instantiated" }
+}