* lib/regcomp.c (init_dfa, parse_bracket_exp)
(build_charclass_op):
* lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
* lib/regexec.c (get_subexp, build_trtable):
When calling calloc, put size argument last.
---
 ChangeLog            |  7 +++++++
 lib/regcomp.c        | 12 ++++++------
 lib/regex_internal.c |  4 ++--
 lib/regexec.c        | 10 +++++-----
 4 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c20c151757..e202b14530 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2025-04-13  Paul Eggert  <egg...@cs.ucla.edu>
 
+       regex: pacify gcc -Wcalloc-transposed-args
+       * lib/regcomp.c (init_dfa, parse_bracket_exp)
+       (build_charclass_op):
+       * lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
+       * lib/regexec.c (get_subexp, build_trtable):
+       When calling calloc, put size argument last.
+
        regex: match current Emacs behavior
        * config/srclist.txt: Comment out regex.h, since we now
        disagree with glibc.
diff --git a/lib/regcomp.c b/lib/regcomp.c
index 41b0f989c0..a23f289d7a 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -831,7 +831,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
     if (table_size > pat_len)
       break;
 
-  dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+  dfa->state_table = calloc (table_size, sizeof (struct re_state_table_entry));
   dfa->state_hash_mask = table_size - 1;
 
   dfa->mb_cur_max = MB_CUR_MAX;
@@ -862,7 +862,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
        {
          int i, j, ch;
 
-         dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+         dfa->sb_char = (re_bitset_ptr_t) calloc (1, sizeof (bitset_t));
          if (__glibc_unlikely (dfa->sb_char == NULL))
            return REG_ESPACE;
 
@@ -3055,8 +3055,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, 
re_token_t *token,
                                                   _NL_COLLATE_SYMB_EXTRAMB);
     }
 #endif
-  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
-  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+  sbcset = (re_bitset_ptr_t) calloc (1, sizeof (bitset_t));
+  mbcset = (re_charset_t *) calloc (1, sizeof (re_charset_t));
   if (__glibc_unlikely (sbcset == NULL || mbcset == NULL))
     {
       re_free (sbcset);
@@ -3548,13 +3548,13 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE 
trans,
   reg_errcode_t ret;
   bin_tree_t *tree;
 
-  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+  sbcset = (re_bitset_ptr_t) calloc (1, sizeof (bitset_t));
   if (__glibc_unlikely (sbcset == NULL))
     {
       *err = REG_ESPACE;
       return NULL;
     }
-  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+  mbcset = (re_charset_t *) calloc (1, sizeof (re_charset_t));
   if (__glibc_unlikely (mbcset == NULL))
     {
       re_free (sbcset);
diff --git a/lib/regex_internal.c b/lib/regex_internal.c
index 8bf761c761..9b89cc9372 100644
--- a/lib/regex_internal.c
+++ b/lib/regex_internal.c
@@ -1595,7 +1595,7 @@ create_ci_newstate (const re_dfa_t *dfa, const 
re_node_set *nodes,
   reg_errcode_t err;
   re_dfastate_t *newstate;
 
-  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  newstate = (re_dfastate_t *) calloc (1, sizeof (re_dfastate_t));
   if (__glibc_unlikely (newstate == NULL))
     return NULL;
   err = re_node_set_init_copy (&newstate->nodes, nodes);
@@ -1643,7 +1643,7 @@ create_cd_newstate (const re_dfa_t *dfa, const 
re_node_set *nodes,
   reg_errcode_t err;
   re_dfastate_t *newstate;
 
-  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  newstate = (re_dfastate_t *) calloc (1, sizeof (re_dfastate_t));
   if (__glibc_unlikely (newstate == NULL))
     return NULL;
   err = re_node_set_init_copy (&newstate->nodes, nodes);
diff --git a/lib/regexec.c b/lib/regexec.c
index 58215bd376..6923394a08 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -2721,8 +2721,8 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx 
bkref_str_idx)
            continue; /* No.  */
          if (sub_top->path == NULL)
            {
-             sub_top->path = calloc (sizeof (state_array_t),
-                                     sl_str - sub_top->str_idx + 1);
+             sub_top->path = calloc (sl_str - sub_top->str_idx + 1,
+                                      sizeof (state_array_t));
              if (sub_top->path == NULL)
                return REG_ESPACE;
            }
@@ -3266,7 +3266,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
       if (ndests == 0)
        {
          state->trtable = (re_dfastate_t **)
-           calloc (sizeof (re_dfastate_t *), SBC_MAX);
+           calloc (SBC_MAX, sizeof (re_dfastate_t *));
           if (__glibc_unlikely (state->trtable == NULL))
             return false;
          return true;
@@ -3338,7 +3338,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
         discern by looking at the character code: allocate a
         256-entry transition table.  */
       trtable = state->trtable =
-       (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
+       (re_dfastate_t **) calloc (SBC_MAX, sizeof (re_dfastate_t *));
       if (__glibc_unlikely (trtable == NULL))
        goto out_free;
 
@@ -3369,7 +3369,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
         transition tables, one starting at trtable[0] and one
         starting at trtable[SBC_MAX].  */
       trtable = state->word_trtable =
-       (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
+       (re_dfastate_t **) calloc (2 * SBC_MAX, sizeof (re_dfastate_t *));
       if (__glibc_unlikely (trtable == NULL))
        goto out_free;
 
-- 
2.45.2


Reply via email to