From 24ba81955d92ff8c29f814867b887446f5c0be05 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Wed, 4 Sep 2013 12:54:09 +0000 Subject: [PATCH] More comments about DECL_BUILT_IN and DECL_IS_BUILTIN gcc/ * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments explaining their differences. From-SVN: r202251 --- gcc/ChangeLog | 5 +++++ gcc/tree.h | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8dce3e7c9c..0b51fa2971e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-09-04 Dodji Seketeli + + * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments + explaining their differences. + 2013-09-04 Sandeep Kumar Singh * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200. diff --git a/gcc/tree.h b/gcc/tree.h index 718d8f45276..88d527ac89e 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -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 **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. */