diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-09-03 11:45:03 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-09-03 15:30:57 +0200 |
commit | 7200a4424c45b1b10e138bb5c52f58f3cc7da4a0 (patch) | |
tree | 66aeb110f62077c06d27bb65047b768198c45d06 /gcc/gimple-range-trace.h | |
parent | 4db10cbf21dfe48e72880f592c1b5640baaf16cf (diff) | |
download | gcc-7200a4424c45b1b10e138bb5c52f58f3cc7da4a0.zip gcc-7200a4424c45b1b10e138bb5c52f58f3cc7da4a0.tar.gz gcc-7200a4424c45b1b10e138bb5c52f58f3cc7da4a0.tar.bz2 |
RAII class to change dump_file.
The function dump_ranger() shows everything the ranger knows at the
current time. To do this, we tickle all the statements to force ranger
to provide as much information as possible. During this process, the
relation code will dump status out to the dump_file, whereas in
dump_ranger, we want to dump it out to a specific file (most likely
stderr). This patch changes the dump_file through the life of
dump_ranger() and resets it when its done.
This patch only affects dump/debugging code.
Tested on x86-64 Linux.
gcc/ChangeLog:
* gimple-range-trace.cc (push_dump_file::push_dump_file): New.
(push_dump_file::~push_dump_file): New.
(dump_ranger): Change dump_file temporarily while dumping
ranger.
* gimple-range-trace.h (class push_dump_file): New.
Diffstat (limited to 'gcc/gimple-range-trace.h')
-rw-r--r-- | gcc/gimple-range-trace.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/gimple-range-trace.h b/gcc/gimple-range-trace.h index d2d1a8b..b9546a2 100644 --- a/gcc/gimple-range-trace.h +++ b/gcc/gimple-range-trace.h @@ -58,4 +58,18 @@ range_tracer::header (const char *str) return do_header (str); return 0; } + +// RAII class to change current dump_file and dump_flags, and restore +// when the object goes out of scope. + +class push_dump_file +{ +public: + push_dump_file (FILE *, dump_flags_t); + ~push_dump_file (); +private: + FILE *old_dump_file; + dump_flags_t old_dump_flags; +}; + #endif // GCC_GIMPLE_RANGE_TRACE_H |