[Bug bootstrap/90819] New: [10 regression] -Walloc-size-larger-than error in trans-mem.c

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jun 10 18:01:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90819

            Bug ID: 90819
           Summary: [10 regression] -Walloc-size-larger-than error in
                    trans-mem.c
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---
            Target: i386-pc-solaris2.11, sparc-sun-solaris2.11

This patch

2019-06-10  Martin Liska  <mliska@suse.cz>

        * ansidecl.h:
        (ATTRIBUTE_RESULT_SIZE_1): Define new macro.
        (ATTRIBUTE_RESULT_SIZE_2): Likewise.
        (ATTRIBUTE_RESULT_SIZE_1_2): Likewise.
        * libiberty.h (xmalloc): Add RESULT_SIZE attribute.
        (xrealloc): Likewise.
        (xcalloc): Likewise.

broke bootstrap on Solaris/x86 and Solaris/SPARC (and probably other 32-bit
targets):

In file included from /vol/gcc/src/hg/trunk/local/gcc/system.h:691,
                 from /vol/gcc/src/hg/trunk/local/gcc/trans-mem.c:23:
In function 'void tm_memopt_compute_available(tm_region*,
vec<basic_block_def*>)',
    inlined from 'unsigned int execute_tm_memopt()' at
/vol/gcc/src/hg/trunk/local/gcc/trans-mem.c:4047:35,
    inlined from 'virtual unsigned int
{anonymous}::pass_tm_memopt::execute(function*)' at
/vol/gcc/src/hg/trunk/local/gcc/trans-mem.c:4087:72:
/vol/gcc/src/hg/trunk/local/gcc/../include/libiberty.h:362:39: error: argument
1 value '4294967292' exceeds maximum object size 2147483647
[-Werror=alloc-size-larger-than=]
  362 | #define XNEWVEC(T, N)  ((T *) xmalloc (sizeof (T) * (N)))
      |                               ~~~~~~~~^~~~~~~~~~~~~~~~~~
/vol/gcc/src/hg/trunk/local/gcc/trans-mem.c:3713:5: note: in expansion of macro
'XNEWVEC'
 3713 |     XNEWVEC (basic_block, qlen);
      |     ^~~~~~~
In file included from /vol/gcc/src/hg/trunk/local/gcc/system.h:691,
                 from /vol/gcc/src/hg/trunk/local/gcc/trans-mem.c:23:
/vol/gcc/src/hg/trunk/local/gcc/../include/libiberty.h: In member function
'virtual unsigned int {anonymous}::pass_tm_memopt::execute(function*)':
/vol/gcc/src/hg/trunk/local/gcc/../include/libiberty.h:313:14: note: in a call
to allocation function 'void* xmalloc(std::size_t)' declared here
  313 | extern void *xmalloc (size_t) ATTRIBUTE_MALLOC
ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_1 ATTRIBUTE_WARN_UNUSED_RESULT;
      |              ^~~~~~~


More information about the Gcc-bugs mailing list