diff options
author | John Carr <jfc@mit.edu> | 1998-04-29 12:41:21 +0000 |
---|---|---|
committer | John Carr <jfc@gcc.gnu.org> | 1998-04-29 12:41:21 +0000 |
commit | bf5f0e909897688eec9f4f70eb88a805764675f1 (patch) | |
tree | dd1905278f46f2c7d59d423d9eab086e1c6e679b /gcc | |
parent | a0281dae2f5b4def60e1f880d0046e581539bf29 (diff) | |
download | gcc-bf5f0e909897688eec9f4f70eb88a805764675f1.zip gcc-bf5f0e909897688eec9f4f70eb88a805764675f1.tar.gz gcc-bf5f0e909897688eec9f4f70eb88a805764675f1.tar.bz2 |
calls.c (expand_call): Fix recognition of C++ operator new.
* calls.c (expand_call): Fix recognition of C++ operator new.
* alias.c (mode_alias_check): Disable type based alias detection.
From-SVN: r19492
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/alias.c | 6 | ||||
-rw-r--r-- | gcc/calls.c | 8 |
3 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4cb493c..341de00 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Apr 29 15:34:40 1998 John Carr <jfc@mit.edu> + + * calls.c (expand_call): Fix recognition of C++ operator new. + + * alias.c (mode_alias_check): Disable type based alias detection. + Wed Apr 29 15:06:42 1998 Gavin Koch <gavin@cygnus.com> * config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL, diff --git a/gcc/alias.c b/gcc/alias.c index a9024b8..148b452 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -859,6 +859,11 @@ mode_alias_check (x, y, varies) register rtx x, y; int (*varies) PROTO ((rtx)); { +#if 1 + /* gcc rules: all type aliasing allowed */ + return 1; +#else + /* ANSI C rules: different types do not alias. */ enum machine_mode x_mode = GET_MODE (x), y_mode = GET_MODE (y); rtx x_addr = XEXP (x, 0), y_addr = XEXP (y, 0); int x_varies, y_varies, x_struct, y_struct; @@ -903,6 +908,7 @@ mode_alias_check (x, y, varies) /* Both are varying structs or fixed scalars. Check that they are not the same type. */ return (x_struct == y_struct); +#endif } /* Read dependence: X is read after read in MEM takes place. There can diff --git a/gcc/calls.c b/gcc/calls.c index 5c34913..51fa73b 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -901,8 +901,12 @@ expand_call (exp, target, ignore) else if (! strcmp (tname, "malloc") || ! strcmp (tname, "calloc") || ! strcmp (tname, "realloc") - || ! strcmp (tname, "__builtin_new") - || ! strcmp (tname, "__builtin_vec_new")) + /* Note use of NAME rather than TNAME here. These functions + are only reserved when preceded with __. */ + || ! strcmp (name, "__vn") /* mangled __builtin_vec_new */ + || ! strcmp (name, "__nw") /* mangled __builtin_new */ + || ! strcmp (name, "__builtin_new") + || ! strcmp (name, "__builtin_vec_new")) is_malloc = 1; } |