OSDN Git Service

* calls.c (flags_from_decl_or_type): Factor and remove redundant
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Mar 2003 01:59:16 +0000 (01:59 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Mar 2003 01:59:16 +0000 (01:59 +0000)
conditional tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64347 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/calls.c

index 0b3f895..5e7a19b 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-13  Roger Sayle  <roger@eyesopen.com>
+
+       * calls.c (flags_from_decl_or_type): Factor and remove redundant
+       conditional tests.
+
 2003-03-13  Mike Stump  <mrs@apple.com>
 
        * ggc-page.c (struct page_entry): Remove varray.h header.
index cab6571..f23b939 100644 (file)
@@ -796,23 +796,26 @@ flags_from_decl_or_type (exp)
 {
   int flags = 0;
   tree type = exp;
-  /* ??? We can't set IS_MALLOC for function types?  */
+
   if (DECL_P (exp))
     {
       struct cgraph_rtl_info *i = cgraph_rtl_info (exp);
       type = TREE_TYPE (exp);
 
-      if (i && i->pure_function)
-       flags |= ECF_PURE | ECF_LIBCALL_BLOCK;
-      if (i && i->const_function)
-       flags |= ECF_CONST | ECF_LIBCALL_BLOCK;
+      if (i)
+       {
+         if (i->pure_function)
+           flags |= ECF_PURE | ECF_LIBCALL_BLOCK;
+         if (i->const_function)
+           flags |= ECF_CONST | ECF_LIBCALL_BLOCK;
+       }
 
       /* The function exp may have the `malloc' attribute.  */
-      if (DECL_P (exp) && DECL_IS_MALLOC (exp))
+      if (DECL_IS_MALLOC (exp))
        flags |= ECF_MALLOC;
 
       /* The function exp may have the `pure' attribute.  */
-      if (DECL_P (exp) && DECL_IS_PURE (exp))
+      if (DECL_IS_PURE (exp))
        flags |= ECF_PURE | ECF_LIBCALL_BLOCK;
 
       if (TREE_NOTHROW (exp))