Commit d7327979 by Paolo Carlini Committed by Paolo Carlini

re PR c++/69078 ([C++14] function local static not initialized when only used in…

re PR c++/69078 ([C++14] function local static not initialized when only used in a generic/variadic lambda)

2017-10-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69078
	* g++.dg/cpp1y/lambda-generic-69078-1.C: New.
	* g++.dg/cpp1y/lambda-generic-69078-2.C: Likewise.

From-SVN: r253736
parent e7176f75
2017-10-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69078
* g++.dg/cpp1y/lambda-generic-69078-1.C: New.
* g++.dg/cpp1y/lambda-generic-69078-2.C: Likewise.
2017-10-13 Jakub Jelinek <jakub@redhat.com> 2017-10-13 Jakub Jelinek <jakub@redhat.com>
PR target/82274 PR target/82274
......
// PR c++/69078
// { dg-do run { target c++14 } }
// { dg-options "-Wall" }
#include <cassert>
struct Class {
Class(void (*_param)()) : data(_param) {}
void (*data)();
};
void funUser(void (*test)(int)) {
test(60);
}
void user(Class& c, int i) {
(void)i;
assert (c.data);
}
void probe() {}
int main() {
static Class instance = { probe };
funUser([](auto... p) {
user(instance, p...);
});
}
// PR c++/69078
// { dg-do run { target c++14 } }
#include <cassert>
template<typename F>
void run( F &&f ) {
f(nullptr);
}
struct V {
int i;
};
int main() {
static V const s={2};
assert (s.i == 2);
run([](auto){
assert (s.i == 2);
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment