More comments about DECL_BUILT_IN and DECL_IS_BUILTIN
authorDodji Seketeli <dodji@redhat.com>
Wed, 4 Sep 2013 12:54:09 +0000 (12:54 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Wed, 4 Sep 2013 12:54:09 +0000 (14:54 +0200)
gcc/

* tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
explaining their differences.

From-SVN: r202251

gcc/ChangeLog
gcc/tree.h

index a8dce3e7c9c29dea3cff10c5798817042b521148..0b51fa2971ef06e786baaf3f715e8e788b691e4c 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-04  Dodji Seketeli  <dodji@redhat.com>
+
+       * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
+       explaining their differences.
+
 2013-09-04  Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
 
        * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
index 718d8f45276885f54e3b72320b66e09cdeb1e2b9..88d527ac89eb60ef955220c7bff2b88bbc0dde02 100644 (file)
@@ -1838,6 +1838,9 @@ extern enum machine_mode vector_type_mode (const_tree);
 #define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
 #define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
 #define DECL_SOURCE_COLUMN(NODE) LOCATION_COLUMN (DECL_SOURCE_LOCATION (NODE))
+/* This accessor returns TRUE if the decl it operates on was created
+   by a front-end or back-end rather than by user code.  In this case
+   builtin-ness is indicated by source location.  */
 #define DECL_IS_BUILTIN(DECL) \
   (LOCATION_LOCUS (DECL_SOURCE_LOCATION (DECL)) <= BUILTINS_LOCATION)
 
@@ -2486,7 +2489,13 @@ extern vec<tree, va_gc> **decl_debug_args_insert (tree);
 #define DECL_STRUCT_FUNCTION(NODE) \
   (FUNCTION_DECL_CHECK (NODE)->function_decl.f)
 
-/* In a FUNCTION_DECL, nonzero means a built in function.  */
+/* In a FUNCTION_DECL, nonzero means a built in function of a
+   standard library or more generally a built in function that is
+   recognized by optimizers and expanders.
+
+   Note that it is different from the DECL_IS_BUILTIN accessor.  For
+   instance, user declarated prototypes of C library functions are not
+   DECL_IS_BUILTIN but may be DECL_BUILT_IN.  */
 #define DECL_BUILT_IN(NODE) (DECL_BUILT_IN_CLASS (NODE) != NOT_BUILT_IN)
 
 /* For a builtin function, identify which part of the compiler defined it.  */