From 65460a3ada57bb0ce2418d6b2a67eee2fdda01ee Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 7 Aug 2021 19:23:57 +0200 Subject: [PATCH] clean-temp: Improve GCC 11 allocation-deallocation checking. * lib/clean-temp.h (cleanup_temp_dir): Move declaration up. (create_temp_dir): Declare that deallocation must happen through 'cleanup_temp_dir'. --- ChangeLog | 7 +++++++ lib/clean-temp.h | 13 +++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a4827f31a3..67019f31b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2021-08-07 Bruno Haible + + clean-temp: Improve GCC 11 allocation-deallocation checking. + * lib/clean-temp.h (cleanup_temp_dir): Move declaration up. + (create_temp_dir): Declare that deallocation must happen through + 'cleanup_temp_dir'. + 2021-08-07 Bruno Haible canon-host: Improve GCC 11 allocation-deallocation checking. diff --git a/lib/clean-temp.h b/lib/clean-temp.h index db4d7fea26..676c192d15 100644 --- a/lib/clean-temp.h +++ b/lib/clean-temp.h @@ -78,6 +78,11 @@ struct temp_dir /* More fields are present here, but not public. */ }; +/* Remove all registered files and subdirectories inside DIR and DIR itself. + DIR cannot be used any more after this call. + Return 0 upon success, or -1 if there was some problem. */ +extern int cleanup_temp_dir (struct temp_dir *dir); + /* Create a temporary directory. PREFIX is used as a prefix for the name of the temporary directory. It should be short and still give an indication about the program. @@ -89,7 +94,8 @@ struct temp_dir is shown and NULL is returned. */ extern struct temp_dir * create_temp_dir (const char *prefix, const char *parentdir, - bool cleanup_verbose); + bool cleanup_verbose) + _GL_ATTRIBUTE_DEALLOC (cleanup_temp_dir, 1); /* Register the given ABSOLUTE_FILE_NAME as being a file inside DIR, that needs to be removed before DIR can be removed. @@ -130,11 +136,6 @@ extern int cleanup_temp_subdir (struct temp_dir *dir, Return 0 upon success, or -1 if there was some problem. */ extern int cleanup_temp_dir_contents (struct temp_dir *dir); -/* Remove all registered files and subdirectories inside DIR and DIR itself. - DIR cannot be used any more after this call. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temp_dir (struct temp_dir *dir); - /* ================== Opening and closing temporary files ================== */ /* Open a temporary file in a temporary directory. -- 2.39.5