+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.
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);
+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.
--- /dev/null
+// { 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:;
+ }
+}