[llvm-commits] [llvm-gcc-4.0] r44229 - /llvm-gcc-4.0/trunk/gcc/llvm-types.cpp

Duncan Sands baldrick at free.fr
Mon Nov 19 07:04:41 PST 2007


Author: baldrick
Date: Mon Nov 19 09:04:41 2007
New Revision: 44229

URL: http://llvm.org/viewvc/llvm-project?rev=44229&view=rev
Log:
Add attributes corresponding to gcc's nothrow and
noreturn.  Get attributes via flags_from_decl_or_type.

Modified:
    llvm-gcc-4.0/trunk/gcc/llvm-types.cpp

Modified: llvm-gcc-4.0/trunk/gcc/llvm-types.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-types.cpp?rev=44229&r1=44228&r2=44229&view=diff

==============================================================================
--- llvm-gcc-4.0/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Mon Nov 19 09:04:41 2007
@@ -988,12 +988,22 @@
   ParamAttrsVector Attrs;
   uint16_t RAttributes = ParamAttr::None;
 
+  int flags = flags_from_decl_or_type(decl ? decl : type);
+
   // Check for 'const' function attribute
-  if (decl && TREE_READONLY(decl))
+  if (flags & ECF_CONST)
     RAttributes |= ParamAttr::Const;
 
+  // Check for 'noreturn' function attribute
+  if (flags & ECF_NORETURN)
+    RAttributes |= ParamAttr::NoReturn;
+
+  // Check for 'nounwind' function attribute
+  if (flags & ECF_NOTHROW)
+    RAttributes |= ParamAttr::NoUnwind;
+
   // Check for 'pure' function attribute
-  if (decl && DECL_IS_PURE(decl))
+  if (flags & ECF_PURE)
     RAttributes |= ParamAttr::Pure;
 
   // Compute whether the result needs to be zext or sext'd





More information about the llvm-commits mailing list