Re: [RFA] Ensure result of make_cleanup is never NULL.

Doug Evans
2012-04-18T14:02:39Z

On Wed, Apr 18, 2012 at 2:26 AM, Pedro Alves <palves@redhat.com> wrote:
> On 04/18/2012 01:43 AM, Doug Evans wrote:
>
>> btw, I thought about making cleanup_sentinel const here, for a bit of
>> extra robustness.
>
>
> Won't that mean you'd need to cast the constness out in most, if
> not all places that use it?

--- cleanups.c= 2012-04-17 12:02:38.000000000 -0700
+++ cleanups.c 2012-04-18 06:59:46.000000000 -0700
@@ -50,10 +50,10 @@ struct cleanup
[though this won't catch errors that a value of, say,
((struct cleanup *) -1) will]
- displays as something useful when printed in gdb. */
-static struct cleanup cleanup_sentinel;
+static const struct cleanup cleanup_sentinel;

/* Handy macro to use when referring to cleanup_sentinel. */
-#define CLEANUP_SENTINEL (&cleanup_sentinel)
+#define CLEANUP_SENTINEL ((struct cleanup *) &cleanup_sentinel)

/* Chain of cleanup actions established with make_cleanup,
to be executed if an error happens. */