re PR middle-end/51949 (expand_call: seg fault caused by IPA split)
2012-01-23 Richard Guenther <rguenther@suse.de> PR tree-optimization/51949 * ipa-split.c (execute_split_functions): Do not split malloc functions. * gcc.dg/torture/pr51949.c: New testcase. From-SVN: r183424
This commit is contained in:
parent
dd91386dc6
commit
b2d2adc625
@ -1,3 +1,9 @@
|
||||
2012-01-23 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/51949
|
||||
* ipa-split.c (execute_split_functions): Do not split malloc
|
||||
functions.
|
||||
|
||||
2012-01-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/51933
|
||||
|
@ -1395,10 +1395,11 @@ execute_split_functions (void)
|
||||
int todo = 0;
|
||||
struct cgraph_node *node = cgraph_get_node (current_function_decl);
|
||||
|
||||
if (flags_from_decl_or_type (current_function_decl) & ECF_NORETURN)
|
||||
if (flags_from_decl_or_type (current_function_decl)
|
||||
& (ECF_NORETURN|ECF_MALLOC))
|
||||
{
|
||||
if (dump_file)
|
||||
fprintf (dump_file, "Not splitting: noreturn function.\n");
|
||||
fprintf (dump_file, "Not splitting: noreturn/malloc function.\n");
|
||||
return 0;
|
||||
}
|
||||
if (MAIN_NAME_P (DECL_NAME (current_function_decl)))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-01-23 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/51949
|
||||
* gcc.dg/torture/pr51949.c: New testcase.
|
||||
|
||||
2012-01-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/51933
|
||||
|
20
gcc/testsuite/gcc.dg/torture/pr51949.c
Normal file
20
gcc/testsuite/gcc.dg/torture/pr51949.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
typedef long unsigned int size_t;
|
||||
extern __attribute__ ((malloc)) void *mem_alloc(size_t);
|
||||
void *mem_alloc(size_t amount)
|
||||
{
|
||||
void *q = __builtin_malloc (amount);
|
||||
if (!q) {
|
||||
__builtin_printf("malloc");
|
||||
__builtin_exit(255);
|
||||
}
|
||||
}
|
||||
void mem_realloc()
|
||||
{
|
||||
mem_alloc(1);
|
||||
}
|
||||
void put_env_var()
|
||||
{
|
||||
mem_alloc(1);
|
||||
}
|
Loading…
Reference in New Issue
Block a user