Title: [284895] trunk/Source/bmalloc
Revision
284895
Author
[email protected]
Date
2021-10-26 14:08:08 -0700 (Tue, 26 Oct 2021)

Log Message

[libpas] Add printf format attributes
<https://webkit.org/b/232291>
<rdar://problem/84643135>

Reviewed by Yusuke Suzuki.

Define PAS_FORMAT_PRINTF() macro in pas_utils.h, apply it to
functions that take format strings, then fix all the issues
found during compilation.

These changes also let us remove the clang pragma macros that
ignored -Wformat-nonliteral warnings in pas_log.c and
pas_string_stream.c.

* libpas/src/libpas/pas_all_heaps.c:
(verify_in_steady_state_segregated_directory_callback):
* libpas/src/libpas/pas_bitfit_directory.c:
(pas_bitfit_directory_take_last_empty):
* libpas/src/libpas/pas_bitfit_heap.c:
(pas_bitfit_heap_select_variant):
* libpas/src/libpas/pas_bitfit_page_inlines.h:
(pas_bitfit_page_allocate):
(pas_bitfit_page_deallocate_with_page_impl):
* libpas/src/libpas/pas_commit_span.c:
(pas_commit_span_construct):
(pas_commit_span_add_unchanged):
* libpas/src/libpas/pas_enumerate_large_heaps.c:
(record_span):
(pas_enumerate_large_heaps):
* libpas/src/libpas/pas_fd_stream.c:
(fd_stream_vprintf):
* libpas/src/libpas/pas_fd_stream.h:
* libpas/src/libpas/pas_hashtable.h:
* libpas/src/libpas/pas_large_map.c:
(pas_large_map_add):
(pas_large_map_take):
* libpas/src/libpas/pas_large_sharing_pool.c:
(validate_min_heap):
* libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_return_memory_to_page):
(pas_local_allocator_try_allocate_inline_cases):
* libpas/src/libpas/pas_log.c:
* libpas/src/libpas/pas_log.h:
* libpas/src/libpas/pas_page_sharing_pool.c:
(pas_page_sharing_pool_add_at_index):
* libpas/src/libpas/pas_segregated_directory_inlines.h:
(pas_segregated_directory_iterate_iterate_callback):
(pas_segregated_directory_iterate_forward):
* libpas/src/libpas/pas_segregated_heap.c:
(pas_segregated_heap_ensure_size_directory_for_count):
* libpas/src/libpas/pas_segregated_shared_page_directory.c:
(pas_segregated_shared_page_directory_find_first_eligible):
* libpas/src/libpas/pas_segregated_shared_view.c:
(compute_summary):
* libpas/src/libpas/pas_segregated_view.c:
(for_each_live_object):
(should_be_eligible):
* libpas/src/libpas/pas_status_reporter.c:
(pas_status_reporter_dump_large_map):
* libpas/src/libpas/pas_stream.h:
* libpas/src/libpas/pas_string_stream.c:
(string_stream_vprintf):
* libpas/src/libpas/pas_string_stream.h:
* libpas/src/libpas/pas_thread_local_cache.c:
(suspend):
* libpas/src/libpas/pas_tiny_large_map_entry.h:
(pas_tiny_large_map_entry_can_create):
* libpas/src/libpas/pas_try_allocate_common.h:
(pas_try_allocate_common_impl_fast):
(pas_try_allocate_common_impl_slow):
* libpas/src/libpas/pas_try_allocate_intrinsic.h:
* libpas/src/libpas/pas_utils.h:

Modified Paths

Diff

Modified: trunk/Source/bmalloc/ChangeLog (284894 => 284895)


--- trunk/Source/bmalloc/ChangeLog	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/ChangeLog	2021-10-26 21:08:08 UTC (rev 284895)
@@ -1,3 +1,79 @@
+2021-10-26  David Kilzer  <[email protected]>
+
+        [libpas] Add printf format attributes
+        <https://webkit.org/b/232291>
+        <rdar://problem/84643135>
+
+        Reviewed by Yusuke Suzuki.
+
+        Define PAS_FORMAT_PRINTF() macro in pas_utils.h, apply it to
+        functions that take format strings, then fix all the issues
+        found during compilation.
+
+        These changes also let us remove the clang pragma macros that
+        ignored -Wformat-nonliteral warnings in pas_log.c and
+        pas_string_stream.c.
+
+        * libpas/src/libpas/pas_all_heaps.c:
+        (verify_in_steady_state_segregated_directory_callback):
+        * libpas/src/libpas/pas_bitfit_directory.c:
+        (pas_bitfit_directory_take_last_empty):
+        * libpas/src/libpas/pas_bitfit_heap.c:
+        (pas_bitfit_heap_select_variant):
+        * libpas/src/libpas/pas_bitfit_page_inlines.h:
+        (pas_bitfit_page_allocate):
+        (pas_bitfit_page_deallocate_with_page_impl):
+        * libpas/src/libpas/pas_commit_span.c:
+        (pas_commit_span_construct):
+        (pas_commit_span_add_unchanged):
+        * libpas/src/libpas/pas_enumerate_large_heaps.c:
+        (record_span):
+        (pas_enumerate_large_heaps):
+        * libpas/src/libpas/pas_fd_stream.c:
+        (fd_stream_vprintf):
+        * libpas/src/libpas/pas_fd_stream.h:
+        * libpas/src/libpas/pas_hashtable.h:
+        * libpas/src/libpas/pas_large_map.c:
+        (pas_large_map_add):
+        (pas_large_map_take):
+        * libpas/src/libpas/pas_large_sharing_pool.c:
+        (validate_min_heap):
+        * libpas/src/libpas/pas_local_allocator_inlines.h:
+        (pas_local_allocator_scan_bits_to_set_up_free_bits):
+        (pas_local_allocator_return_memory_to_page):
+        (pas_local_allocator_try_allocate_inline_cases):
+        * libpas/src/libpas/pas_log.c:
+        * libpas/src/libpas/pas_log.h:
+        * libpas/src/libpas/pas_page_sharing_pool.c:
+        (pas_page_sharing_pool_add_at_index):
+        * libpas/src/libpas/pas_segregated_directory_inlines.h:
+        (pas_segregated_directory_iterate_iterate_callback):
+        (pas_segregated_directory_iterate_forward):
+        * libpas/src/libpas/pas_segregated_heap.c:
+        (pas_segregated_heap_ensure_size_directory_for_count):
+        * libpas/src/libpas/pas_segregated_shared_page_directory.c:
+        (pas_segregated_shared_page_directory_find_first_eligible):
+        * libpas/src/libpas/pas_segregated_shared_view.c:
+        (compute_summary):
+        * libpas/src/libpas/pas_segregated_view.c:
+        (for_each_live_object):
+        (should_be_eligible):
+        * libpas/src/libpas/pas_status_reporter.c:
+        (pas_status_reporter_dump_large_map):
+        * libpas/src/libpas/pas_stream.h:
+        * libpas/src/libpas/pas_string_stream.c:
+        (string_stream_vprintf):
+        * libpas/src/libpas/pas_string_stream.h:
+        * libpas/src/libpas/pas_thread_local_cache.c:
+        (suspend):
+        * libpas/src/libpas/pas_tiny_large_map_entry.h:
+        (pas_tiny_large_map_entry_can_create):
+        * libpas/src/libpas/pas_try_allocate_common.h:
+        (pas_try_allocate_common_impl_fast):
+        (pas_try_allocate_common_impl_slow):
+        * libpas/src/libpas/pas_try_allocate_intrinsic.h:
+        * libpas/src/libpas/pas_utils.h:
+
 2021-10-20  Michael Catanzaro  <[email protected]>
 
         Do not use strerror()

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_all_heaps.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_all_heaps.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_all_heaps.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -367,8 +367,7 @@
         if (is_empty) {
             dump_directory_nicely(directory);
             dump_view_nicely(index, view);
-            pas_log(": didn't expect it to be empty.\n",
-                    index, view);
+            pas_log(": didn't expect it to be empty.\n");
             PAS_ASSERT(!is_empty);
         }
         

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_directory.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_directory.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_directory.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -437,7 +437,7 @@
             /* If a page's num_live_bits drops to zero then we will mark it empty in the directory that
                owns it while holding the lock. Newly created pages start out empty.  */
             if (max_free != PAS_BITFIT_MAX_FREE_EMPTY) {
-                pas_log("%p:%u: found non-empty page that is dead when taking last empty.\n");
+                pas_log("%p:%zu: found non-empty page that is dead when taking last empty.\n", page, index);
                 PAS_ASSERT(max_free == PAS_BITFIT_MAX_FREE_EMPTY);
             }
         } else {
@@ -444,7 +444,7 @@
             /* If a page's num_live_bits goes above zero then we mark it unprocessed while holding the
                lock. */
             if (max_free == PAS_BITFIT_MAX_FREE_EMPTY) {
-                pas_log("%p:%u: found empty page that is not dead when taking last empty.\n");
+                pas_log("%p:%zu: found empty page that is not dead when taking last empty.\n", page, index);
                 PAS_ASSERT(max_free != PAS_BITFIT_MAX_FREE_EMPTY);
             }
         }

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_heap.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_heap.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_heap.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -83,7 +83,7 @@
             continue;
 
         if (verbose)
-            pas_log("max object size = %u\n", page_config.base.max_object_size);
+            pas_log("max object size = %zu\n", page_config.base.max_object_size);
 
         PAS_ASSERT(
             page_config.base.max_object_size

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_page_inlines.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_page_inlines.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_bitfit_page_inlines.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -369,7 +369,7 @@
 
                 if (verbose) {
                     pas_log("Need to do a search starting at word_index = %lu + 1, "
-                            "num_remaining_needed_bits = %lu\n",
+                            "num_remaining_needed_bits = %llu\n",
                             word_index, num_remaining_needed_bits);
                 }
 
@@ -383,7 +383,7 @@
                     unsigned pages_to_commit_on_reloop;
 
                     if (verbose) {
-                        pas_log("At other_word_index = %lu, num_remaining_needed_bits = %lu\n",
+                        pas_log("At other_word_index = %lu, num_remaining_needed_bits = %llu\n",
                                 other_word_index, num_remaining_needed_bits);
                     }
 
@@ -796,7 +796,7 @@
                          intermediate_word_index++)
                         free_words[intermediate_word_index] = UINT64_MAX;
                     if (verbose) {
-                        pas_log("object_end_bit_index = %lu, mask = %llu\n",
+                        pas_log("object_end_bit_index = %llu, mask = %llu\n",
                                 object_end_bit_index, pas_make_mask64(object_end_bit_index + 1));
                     }
                     break;
@@ -804,7 +804,7 @@
 
                 if (verbose) {
                     pas_log("word_index = %lu, bit_index_in_word = %lu, other_word_index = %lu, "
-                            "object_end_bit_index = %lu\n",
+                            "object_end_bit_index = %llu\n",
                             word_index, bit_index_in_word, other_word_index, object_end_bit_index);
                 }
 

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_commit_span.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_commit_span.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_commit_span.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -39,7 +39,7 @@
 void pas_commit_span_construct(pas_commit_span* span)
 {
     if (verbose)
-        pas_log("%p: creating commit span.\n");
+        pas_log("%p: creating commit span.\n", span);
     span->index_of_start_of_span = UINTPTR_MAX;
     span->did_add_first = false;
     span->total_bytes = 0;
@@ -66,7 +66,7 @@
         return;
     
     if (verbose)
-        pas_log("%p: adding a thing.\n");
+        pas_log("%p: adding a thing.\n", span);
 
     PAS_ASSERT(span->index_of_start_of_span < granule_index);
 

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_enumerate_large_heaps.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_enumerate_large_heaps.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_enumerate_large_heaps.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -53,7 +53,7 @@
 {
     static const bool verbose = false;
     if (verbose)
-        pas_log("record_span: %p...%p\n", range.begin, range.end);
+        pas_log("record_span: %p...%p\n", (void*)range.begin, (void*)range.end);
     pas_enumerator_record(
         enumerator, (void*)range.begin, pas_range_size(range), pas_enumerator_payload_record);
 }
@@ -140,7 +140,7 @@
             PAS_ASSERT(page);
 
             if (verbose)
-                pas_log("Looking at page %p\n", page);
+                pas_log("Looking at page %p\n", (void*)page);
             
             if (!pas_enumerator_exclude_accounted_page(enumerator, (void*)page))
                 continue;

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -31,7 +31,7 @@
 
 #include "pas_log.h"
 
-static void fd_stream_vprintf(pas_stream* stream, const char* format, va_list arg_list)
+static PAS_FORMAT_PRINTF(2, 0) void fd_stream_vprintf(pas_stream* stream, const char* format, va_list arg_list)
 {
     pas_fd_stream_vprintf((pas_fd_stream*)stream, format, arg_list);
 }

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_fd_stream.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -49,7 +49,7 @@
 
 PAS_API void pas_fd_stream_construct(pas_fd_stream* stream, int fd);
 
-PAS_API void pas_fd_stream_vprintf(pas_fd_stream* stream, const char* format, va_list arg_list);
+PAS_API void pas_fd_stream_vprintf(pas_fd_stream* stream, const char* format, va_list arg_list) PAS_FORMAT_PRINTF(2, 0);
 
 #define pas_fd_stream_printf(stream, ...) \
     pas_stream_printf((pas_stream*)(stream), __VA_ARGS__)

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_hashtable.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_hashtable.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_hashtable.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -112,7 +112,7 @@
         new_table_mask = new_size - 1; \
         new_byte_size = (size_t)new_size * sizeof(entry_type); \
         if (verbose) \
-            pas_log("Allocating a new table with new_size = %zu, new_byte_size = %zu.\n", new_size, new_byte_size); \
+            pas_log("Allocating a new table with new_size = %u, new_byte_size = %zu.\n", new_size, new_byte_size); \
         new_table = (entry_type*)allocation_config->allocate( \
             new_byte_size, #name "/table", pas_object_allocation, allocation_config->arg); \
         \

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_large_map.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_large_map.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_large_map.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -92,7 +92,7 @@
         tiny_entry = pas_tiny_large_map_entry_create(entry);
 
         if (verbose)
-            pas_log("adding base = %p.\n", tiny_base);
+            pas_log("adding base = %p.\n", (void*)tiny_base);
 
         add_result = pas_tiny_large_map_hashtable_add(
             &pas_tiny_large_map_hashtable_instance, tiny_base,
@@ -159,7 +159,7 @@
 
     tiny_base = pas_tiny_large_map_entry_base(begin);
     if (verbose)
-        pas_log("tiny_base = %p.\n", tiny_base);
+        pas_log("tiny_base = %p.\n", (void*)tiny_base);
     first_level_tiny_entry = pas_tiny_large_map_hashtable_find(
         &pas_tiny_large_map_hashtable_instance, tiny_base);
     if (first_level_tiny_entry) {

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -120,7 +120,7 @@
             &pas_large_sharing_min_heap_instance, index);
         
         if (verbose) {
-            pas_log(" %zu:%p:%lu-%lu:%llu",
+            pas_log(" %d:%p:%lu-%lu:%llu",
                     node->index_in_min_heap,
                     node, node->range.begin, node->range.end,
                     node->use_epoch);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -161,7 +161,7 @@
     data.granule_size = page_config.base.granule_size;
 
     if (verbose) {
-        pas_log("%p, %s: Setting up alloc bits in range %zu...%zu\n",
+        pas_log("%p, %s: Setting up alloc bits in range %u...%u\n",
                 allocator,
                 pas_local_allocator_config_kind_get_string(allocator->config_kind),
                 full_alloc_bits.word_index_begin,
@@ -1288,7 +1288,7 @@
         pas_full_alloc_bits_create_for_view_and_directory(view, directory, page_config);
 
     if (verbose) {
-        pas_log("Full alloc bits have range %zu...%zu\n",
+        pas_log("Full alloc bits have range %u...%u\n",
                 full_alloc_bits.word_index_begin,
                 full_alloc_bits.word_index_end);
     }
@@ -1453,7 +1453,7 @@
         uintptr_t result;
 
         if (verbose)
-            pas_log("payload_end = %p\n", allocator->payload_end);
+            pas_log("payload_end = %p\n", (void*)allocator->payload_end);
         
         PAS_TESTING_ASSERT(allocator->payload_end);
         PAS_TESTING_ASSERT(remaining - object_size < allocator->remaining);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_log.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_log.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_log.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -33,9 +33,6 @@
 #include "pas_snprintf.h"
 #include <unistd.h>
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat-nonliteral"
-
 pthread_t pas_thread_that_is_crash_logging;
 
 void pas_vlog_fd(int fd, const char* format, va_list list)

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_log.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_log.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_log.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -41,11 +41,11 @@
 /* Logging functions that don't require any allocation. You cannot log more than
    PAS_LOG_MAX_BYTES at a time. */
 
-PAS_API void pas_vlog_fd(int fd, const char* format, va_list);
-PAS_API void pas_log_fd(int fd, const char* format, ...);
+PAS_API void pas_vlog_fd(int fd, const char* format, va_list) PAS_FORMAT_PRINTF(2, 0);
+PAS_API void pas_log_fd(int fd, const char* format, ...) PAS_FORMAT_PRINTF(2, 3);
 
-PAS_API void pas_vlog(const char* format, va_list);
-PAS_API void pas_log(const char* format, ...);
+PAS_API void pas_vlog(const char* format, va_list) PAS_FORMAT_PRINTF(1, 0);
+PAS_API void pas_log(const char* format, ...) PAS_FORMAT_PRINTF(1, 2);
 
 PAS_API void pas_start_crash_logging(void);
 

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_page_sharing_pool.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_page_sharing_pool.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_page_sharing_pool.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -233,9 +233,9 @@
     if (verbose) {
         pas_log("Adding participant %p to pool %p (%s), index = %zu.\n",
                 participant,
+                pool,
                 pas_page_sharing_participant_kind_get_string(
                     pas_page_sharing_participant_get_kind(participant)),
-                pool,
                 index_in_sharing_pool);
     }
     

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_directory_inlines.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_directory_inlines.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_directory_inlines.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -116,7 +116,7 @@
 
         if (config->first_considered == SIZE_MAX) {
             if (verbose)
-                pas_log("%p: setting first_considered to 0\n", config->directory, config->index);
+                pas_log("%p: setting first_considered to %zu\n", config->directory, config->index);
             config->first_considered = config->index;
         } else {
             if (verbose) {
@@ -181,7 +181,7 @@
 
     if (verbose) {
         pas_log("Actually using segmented bitvector iteration.\n");
-        pas_log("Segmented bitvector size = %zu\n", data->bitvectors.size);
+        pas_log("Segmented bitvector size = %u\n", data->bitvectors.size);
     }
     found_index = pas_segregated_directory_segmented_bitvectors_iterate(
         &data->bitvectors, PAS_BITVECTOR_WORD_INDEX(PAS_MAX((size_t)1, config->index) - 1),

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -1255,7 +1255,7 @@
                     index_to_small_size_directory + candidate_index);
                 if (candidate) {
                     if (verbose)
-                        pas_log("Have candidate with size = %zu\n", candidate->object_size);
+                        pas_log("Have candidate with size = %d\n", candidate->object_size);
                     
                     /* If the candidate at this index has an object size that is no larger than the
                        one we picked, then we should have just simply used this candidate for our

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -128,7 +128,7 @@
     page_config = *page_config_ptr;
 
     if (verbose)
-        pas_log("trying to allocate size = %zu, alignment = %zu.\n", size, alignment);
+        pas_log("trying to allocate size = %u, alignment = %u.\n", size, alignment);
 
     data.size = size;
     data.alignment = alignment;

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -268,7 +268,7 @@
     end_of_page = page_config.base.page_size;
 
     if (verbose)
-        pas_log("index = %zu, bump_offset = %lu/%lu.\n", view->index, end_of_payload, end_of_page);
+        pas_log("index = %d, bump_offset = %lu/%lu.\n", view->index, end_of_payload, end_of_page);
     
     PAS_ASSERT(start_of_payload >= start_of_page);
     PAS_ASSERT(end_of_payload >= start_of_payload);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_view.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_view.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_segregated_view.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -370,7 +370,7 @@
     object_size = pas_segregated_view_get_size_directory(view)->object_size;
 
     if (verbose) {
-        pas_log("page = %p, got alloc bits range %zu...%zu.\n",
+        pas_log("page = %p, got alloc bits range %u...%u.\n",
                 page,
                 full_alloc_bits.word_index_begin,
                 full_alloc_bits.word_index_end);
@@ -461,7 +461,7 @@
 
         if (verbose) {
             pas_log("Checking if can bump for shared view %p, bump %u, max object size %zu, "
-                    "bump limit %u\n",
+                    "bump limit %zu\n",
                     shared_view, shared_view->bump_offset, page_config->base.max_object_size,
                     pas_segregated_page_config_object_payload_end_offset_from_boundary(*page_config));
         }
@@ -483,7 +483,7 @@
     full_alloc_bits = pas_full_alloc_bits_create_for_view(view, *page_config);
 
     if (verbose) {
-        pas_log("page = %p, got alloc bits range %zu...%zu.\n",
+        pas_log("page = %p, got alloc bits range %u...%u.\n",
                 page,
                 full_alloc_bits.word_index_begin,
                 full_alloc_bits.word_index_end);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_status_reporter.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_status_reporter.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_status_reporter.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -418,19 +418,19 @@
     pas_stream_printf(stream, "    Large Map:\n");
     pas_stream_printf(
         stream,
-        "        Tiny Map: Num Entries: %zu, Num Deleted: %zu, Table Size: %zu\n",
+        "        Tiny Map: Num Entries: %u, Num Deleted: %u, Table Size: %u\n",
         pas_tiny_large_map_hashtable_instance.key_count,
         pas_tiny_large_map_hashtable_instance.deleted_count,
         pas_tiny_large_map_hashtable_instance.table_size);
     pas_stream_printf(
         stream,
-        "        Small Fallback Map: Num Entries: %zu, Num Deleted: %zu, Table Size: %zu\n",
+        "        Small Fallback Map: Num Entries: %u, Num Deleted: %u, Table Size: %u\n",
         pas_small_large_map_hashtable_instance.key_count,
         pas_small_large_map_hashtable_instance.deleted_count,
         pas_small_large_map_hashtable_instance.table_size);
     pas_stream_printf(
         stream,
-        "        Fallback Map: Num Entries: %zu, Num Deleted: %zu, Table Size: %zu\n",
+        "        Fallback Map: Num Entries: %u, Num Deleted: %u, Table Size: %u\n",
         pas_large_map_hashtable_instance.key_count,
         pas_large_map_hashtable_instance.deleted_count,
         pas_large_map_hashtable_instance.table_size);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_stream.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_stream.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_stream.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -43,13 +43,13 @@
 };
 
 struct pas_stream_functions {
-    void (*vprintf)(pas_stream* stream, const char* format, va_list arg_list);
+    void (*vprintf)(pas_stream* stream, const char* format, va_list) PAS_FORMAT_PRINTF(2, 0);
 };
 
 #define PAS_STREAM_INITIALIZER(passed_functions) { .functions = (passed_functions) }
 
-PAS_API void pas_stream_vprintf(pas_stream* stream, const char* format, va_list);
-PAS_API void pas_stream_printf(pas_stream* stream, const char* format, ...);
+PAS_API void pas_stream_vprintf(pas_stream* stream, const char* format, va_list) PAS_FORMAT_PRINTF(2, 0);
+PAS_API void pas_stream_printf(pas_stream* stream, const char* format, ...) PAS_FORMAT_PRINTF(2, 3);
 
 static inline void pas_stream_print_comma(pas_stream* stream, bool* comma, const char* string)
 {

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -32,10 +32,7 @@
 #include "pas_bootstrap_free_heap.h"
 #include "pas_snprintf.h"
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat-nonliteral"
-
-static void string_stream_vprintf(pas_stream* stream, const char* format, va_list arg_list)
+static PAS_FORMAT_PRINTF(2, 0) void string_stream_vprintf(pas_stream* stream, const char* format, va_list arg_list)
 {
     pas_string_stream_vprintf((pas_string_stream*)stream, format, arg_list);
 }

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_string_stream.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -51,7 +51,7 @@
 PAS_API void pas_string_stream_destruct(pas_string_stream* stream);
 PAS_API void pas_string_stream_reset(pas_string_stream* stream);
 
-PAS_API void pas_string_stream_vprintf(pas_string_stream* stream, const char* format, va_list);
+PAS_API void pas_string_stream_vprintf(pas_string_stream* stream, const char* format, va_list) PAS_FORMAT_PRINTF(2, 0);
 
 #define pas_string_stream_printf(stream, ...) \
     pas_stream_printf((pas_stream*)(stream), __VA_ARGS__)

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c	2021-10-26 21:08:08 UTC (rev 284895)
@@ -555,7 +555,7 @@
        heap lock. */
 
     if (result != KERN_SUCCESS) {
-        pas_log("[%d] Failed to suspend pthread %p (mach thread %p) associated with TLC %p: %d\n",
+        pas_log("[%d] Failed to suspend pthread %p (mach thread %d) associated with TLC %p: %d\n",
                 getpid(), thread, mach_thread, cache, result);
         dump_thread_diagnostics(thread);
         PAS_ASSERT(result == KERN_SUCCESS);

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_tiny_large_map_entry.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_tiny_large_map_entry.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_tiny_large_map_entry.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -113,7 +113,7 @@
     }
     base = pas_tiny_large_map_entry_base(entry.begin);
     if (verbose)
-        pas_log("base = %p.\n", base);
+        pas_log("base = %p.\n", (void*)base);
     result = pas_tiny_large_map_entry_create(entry);
     if (verbose) {
         pas_log("encoded: %u, %u, %u, %u, %u\n",
@@ -123,9 +123,9 @@
                 (unsigned)result.bytes[3],
                 (unsigned)result.bytes[4]);
         pas_log("round tripped: %p...%p, heap = %p.\n",
-                pas_tiny_large_map_entry_begin(result, base),
-                pas_tiny_large_map_entry_end(result, base),
-                pas_tiny_large_map_entry_heap(result));
+                (void*)pas_tiny_large_map_entry_begin(result, base),
+                (void*)pas_tiny_large_map_entry_end(result, base),
+                (void*)pas_tiny_large_map_entry_heap(result));
     }
     return entry.begin == pas_tiny_large_map_entry_begin(result, base)
         && entry.end == pas_tiny_large_map_entry_end(result, base)

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -74,7 +74,7 @@
                                               allocator_counts,
                                               result_filter);
     if (verbose)
-        pas_log("in common - result.begin = %p\n", result.begin);
+        pas_log("in common - result.begin = %p\n", (void*)result.begin);
     return result;
 }
 
@@ -112,7 +112,7 @@
             pas_log("Debug heap enabled, asking debug heap.\n");
         result = pas_debug_heap_allocate(size, alignment);
         if (verbose)
-            pas_log("Got result.ptr = %p, did_succeed = %d\n", result.begin, result.did_succeed);
+            pas_log("Got result.ptr = %p, did_succeed = %d\n", (void*)result.begin, result.did_succeed);
         return result;
     }
 

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -321,7 +321,7 @@
         static const bool verbose = false; \
         pas_allocation_result result = name(size, 1); \
         if (verbose) \
-            pas_log("result.begin = %p\n", result.begin); \
+            pas_log("result.begin = %p\n", (void*)result.begin); \
         return result; \
     } \
     \

Modified: trunk/Source/bmalloc/libpas/src/libpas/pas_utils.h (284894 => 284895)


--- trunk/Source/bmalloc/libpas/src/libpas/pas_utils.h	2021-10-26 21:07:13 UTC (rev 284894)
+++ trunk/Source/bmalloc/libpas/src/libpas/pas_utils.h	2021-10-26 21:08:08 UTC (rev 284895)
@@ -68,6 +68,8 @@
 
 #define PAS_ALIGNED(amount) __attribute__((aligned(amount)))
 
+#define PAS_FORMAT_PRINTF(fmt, args) __attribute__((format(__printf__, fmt, args)))
+
 #define PAS_UNUSED __attribute__((unused))
 
 #define PAS_OFFSETOF(type, field) __PAS_OFFSETOF(type, field)
@@ -82,7 +84,7 @@
 #define PAS_ARM __PAS_ARM
 
 /* NOTE: panic format string must have \n at the end. */
-PAS_API PAS_NO_RETURN void pas_panic(const char* format, ...);
+PAS_API PAS_NO_RETURN void pas_panic(const char* format, ...) PAS_FORMAT_PRINTF(1, 2);
 
 #define pas_set_deallocation_did_fail_callback __pas_set_deallocation_did_fail_callback
 #define pas_set_reallocation_did_fail_callback __pas_set_reallocation_did_fail_callback
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to