From 36dbb93d9fa6420bb5ecaee0d42ede4c3bcba129 Mon Sep 17 00:00:00 2001
From: Roger Sayle <roger@eyesopen.com>
Date: Fri, 14 Mar 2003 01:59:16 +0000
Subject: [PATCH] calls.c (flags_from_decl_or_type): Factor and remove
 redundant conditional tests.

	* calls.c (flags_from_decl_or_type): Factor and remove redundant
	conditional tests.

From-SVN: r64347
---
 gcc/ChangeLog |  5 +++++
 gcc/calls.c   | 17 ++++++++++-------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0b3f89542b25..5e7a19bf4403 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/calls.c b/gcc/calls.c
index cab6571f328b..f23b9397d596 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -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))
-- 
GitLab