diff --git a/gcc/cgraphunit.cc b/gcc/cgraphunit.cc index 284a22bb808fe162ccfb1b8cf5adde5d13878ce0..82f205488e904c4f81a5210b3f65b4c3bdc89642 100644 --- a/gcc/cgraphunit.cc +++ b/gcc/cgraphunit.cc @@ -311,6 +311,7 @@ symbol_table::process_new_functions (void) { cgraph_node *node = cgraph_new_nodes[i]; fndecl = node->decl; + bitmap_obstack_initialize (NULL); switch (state) { case CONSTRUCTION: @@ -367,6 +368,7 @@ symbol_table::process_new_functions (void) gcc_unreachable (); break; } + bitmap_obstack_release (NULL); } cgraph_new_nodes.release (); diff --git a/gcc/testsuite/gcc.dg/graphite/pr116068.c b/gcc/testsuite/gcc.dg/graphite/pr116068.c new file mode 100644 index 0000000000000000000000000000000000000000..99ff4f8f2e3f05084dc7407c75e3bb9a9ea8592e --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr116068.c @@ -0,0 +1,26 @@ +/* PR ipa/116068 */ +/* { dg-do compile { target { lto && { bitint && int128 } } } } */ +/* { dg-options "-Os -flto -ffat-lto-objects -floop-parallelize-all -ftree-parallelize-loops=2 --param=parloops-schedule=dynamic" } */ + +#if __BITINT_MAXWIDTH__ >= 1024 +typedef _BitInt (1024) A; +typedef __attribute__((__vector_size__ (16))) char B; +typedef __attribute__((__vector_size__ (16))) int C; +B a; +A b; +int c; +unsigned int *p; + +void +foo0 (unsigned _BitInt (512) x) +{ + C d = {}; + _BitInt (1024) e = x | *(A *) __builtin_memset (&b, c, 8); + unsigned h = __builtin_stdc_first_leading_zero (*p); + C f = *(C *) __builtin_memset (&d, h, 6); + B g = (B) f; + a = g + (B) (__int128) e; +} +#else +int i; +#endif