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 <mli...@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; | ^~~~~~~