re PR debug/86523 (ICE in gen_member_die, at dwarf2out.c:24933 starting from r262560)
2018-07-18 Richard Biener <rguenther@suse.de> PR debug/86523 cp/ * decl2.c (c_parse_final_cleanups): Call write_out_vars before start_static_storage_duration_function sets current_function_decl. * g++.dg/lto/pr86523-3_0.C: New testcase. From-SVN: r262849
This commit is contained in:
parent
df6a7b9d37
commit
97f1323504
@ -1,3 +1,9 @@
|
||||
2018-07-18 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR debug/86523
|
||||
* decl2.c (c_parse_final_cleanups): Call write_out_vars before
|
||||
start_static_storage_duration_function sets current_function_decl.
|
||||
|
||||
2018-07-17 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/86480 - nested variadic lambda and constexpr if.
|
||||
|
@ -4754,14 +4754,14 @@ c_parse_final_cleanups (void)
|
||||
inline, with resulting performance improvements. */
|
||||
tree ssdf_body;
|
||||
|
||||
/* Make sure the back end knows about all the variables. */
|
||||
write_out_vars (vars);
|
||||
|
||||
/* Set the line and file, so that it is obviously not from
|
||||
the source file. */
|
||||
input_location = locus_at_end_of_parsing;
|
||||
ssdf_body = start_static_storage_duration_function (ssdf_count);
|
||||
|
||||
/* Make sure the back end knows about all the variables. */
|
||||
write_out_vars (vars);
|
||||
|
||||
/* First generate code to do all the initializations. */
|
||||
if (vars)
|
||||
do_static_initialization_or_destruction (vars, /*initp=*/true);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2018-07-18 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR debug/86523
|
||||
* g++.dg/lto/pr86523-3_0.C: New testcase.
|
||||
|
||||
2018-07-17 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* gcc.target/m68k/mulsi_highpart.c: New test.
|
||||
|
24
gcc/testsuite/g++.dg/lto/pr86523-3_0.C
Normal file
24
gcc/testsuite/g++.dg/lto/pr86523-3_0.C
Normal file
@ -0,0 +1,24 @@
|
||||
// { dg-lto-do link }
|
||||
// { dg-require-effective-target fpic }
|
||||
// { dg-require-effective-target shared }
|
||||
// { dg-lto-options { { -fPIC -flto -g -shared } } }
|
||||
class a {
|
||||
int b;
|
||||
};
|
||||
int const c = 0, d = 1, f = 2, g = 3;
|
||||
struct B {
|
||||
typedef a h;
|
||||
h i;
|
||||
};
|
||||
template <class> B j();
|
||||
template <class> struct k_context { static B const e_missingvar; };
|
||||
template <class l> B const k_context<l>::e_missingvar = j<l>();
|
||||
inline B m() {
|
||||
switch (0) {
|
||||
case c:
|
||||
case d:
|
||||
return k_context<int>::e_missingvar;
|
||||
case f:
|
||||
case g:;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user