diff options
author | Martin v. Löwis <loewis@informatik.hu-berlin.de> | 2000-03-17 09:11:17 +0000 |
---|---|---|
committer | Martin v. Löwis <loewis@gcc.gnu.org> | 2000-03-17 09:11:17 +0000 |
commit | 91d024d568448e334ecc60b0c55a30b7c3ead9e4 (patch) | |
tree | a18b85b8268fd7d336f378776d0453c2bf1571ad | |
parent | 9dd8851b96d1f7a9035882874953f3dfe54aa8e0 (diff) | |
download | gcc-91d024d568448e334ecc60b0c55a30b7c3ead9e4.zip gcc-91d024d568448e334ecc60b0c55a30b7c3ead9e4.tar.gz gcc-91d024d568448e334ecc60b0c55a30b7c3ead9e4.tar.bz2 |
call.c (special_function_p): It is only malloc if it returns Pmode.
* call.c (special_function_p): It is only malloc if it returns
Pmode.
From-SVN: r32604
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/calls.c | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f1fc13..09dffc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-03-17 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * call.c (special_function_p): It is only malloc if it returns + Pmode. + 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. diff --git a/gcc/calls.c b/gcc/calls.c index 7ae7b3d..6a4c148 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -645,9 +645,10 @@ special_function_p (fndecl, returns_twice, is_longjmp, fork_or_exec, C++ operator new is not suitable because it is not required to return a unique pointer; indeed, the standard placement new just returns its argument. */ - else if (! strcmp (tname, "malloc") - || ! strcmp (tname, "calloc") - || ! strcmp (tname, "strdup")) + else if (TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl))) == Pmode + && (! strcmp (tname, "malloc") + || ! strcmp (tname, "calloc") + || ! strcmp (tname, "strdup"))) *is_malloc = 1; } } |