From 1384b663414d5380e25b21457e71458078ded8d5 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 2 Aug 2008 13:50:28 -0400 Subject: c code generation: assert C indentation/nesting cancels out at appropriate points --- ChangeLog | 6 ++++++ translate.cxx | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d38a3705..6ab9dc3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-02 Frank Ch. Eigler + + * translate.h (translator_output::assert_0_indent): New function. + * translate.cxx (emit_*): Add a couple of calls to confirm + newline(1)/(-1) nest matching. + 2008-07-23 Frank Ch. Eigler From James Bottomley : diff --git a/translate.cxx b/translate.cxx index 5956cba7..03ac0941 100644 --- a/translate.cxx +++ b/translate.cxx @@ -4714,6 +4714,7 @@ translate_pass (systemtap_session& s) s.up->emit_global_init (s.globals[i]); } s.op->newline(-1) << "};"; + s.op->assert_0_indent(); for (unsigned i=0; inewline(); s.up->emit_functionsig (s.functions[i]); } + s.op->assert_0_indent(); for (unsigned i=0; inewline(); s.up->emit_function (s.functions[i]); } + s.op->assert_0_indent(); // Run a varuse_collecting_visitor over probes that need global // variable locks. We'll use this information later in @@ -4738,18 +4741,21 @@ translate_pass (systemtap_session& s) if (s.probes[i]->needs_global_locks()) s.probes[i]->body->visit (&cup.vcv_needs_global_locks); } + s.op->assert_0_indent(); for (unsigned i=0; iemit_probe (s.probes[i]); } + s.op->assert_0_indent(); s.op->newline(); s.up->emit_module_init (); + s.op->assert_0_indent(); s.op->newline(); s.up->emit_module_exit (); - + s.op->assert_0_indent(); s.op->newline(); // XXX impedance mismatch @@ -4760,17 +4766,20 @@ translate_pass (systemtap_session& s) s.op->newline() << "void probe_exit () {"; s.op->newline(1) << "systemtap_module_exit ();"; s.op->newline(-1) << "}"; + s.op->assert_0_indent(); for (unsigned i=0; inewline(); s.up->emit_global_param (s.globals[i]); } + s.op->assert_0_indent(); emit_symbol_data (s); s.op->newline() << "MODULE_DESCRIPTION(\"systemtap-generated probe\");"; s.op->newline() << "MODULE_LICENSE(\"GPL\");"; + s.op->assert_0_indent(); } catch (const semantic_error& e) { -- cgit