tree.c (decl_storage_duration): New.
* tree.c (decl_storage_duration): New. * cp-tree.h: Declare it. (duration_kind): Return values. From-SVN: r164944
This commit is contained in:
parent
828fde809c
commit
b95ca5135e
@ -1,3 +1,9 @@
|
||||
2010-10-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* tree.c (decl_storage_duration): New.
|
||||
* cp-tree.h: Declare it.
|
||||
(duration_kind): Return values.
|
||||
|
||||
2010-10-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* typeck.c (require_complete_type_sfinae): Add complain parm to...
|
||||
|
@ -3934,6 +3934,13 @@ typedef enum linkage_kind {
|
||||
lk_external /* External linkage. */
|
||||
} linkage_kind;
|
||||
|
||||
typedef enum duration_kind {
|
||||
dk_static,
|
||||
dk_thread,
|
||||
dk_auto,
|
||||
dk_dynamic
|
||||
} duration_kind;
|
||||
|
||||
/* Bitmask flags to control type substitution. */
|
||||
enum tsubst_flags {
|
||||
tf_none = 0, /* nothing special */
|
||||
@ -5402,6 +5409,7 @@ extern int count_trees (tree);
|
||||
extern int char_type_p (tree);
|
||||
extern void verify_stmt_tree (tree);
|
||||
extern linkage_kind decl_linkage (tree);
|
||||
extern duration_kind decl_storage_duration (tree);
|
||||
extern tree cp_walk_subtrees (tree*, int*, walk_tree_fn,
|
||||
void*, struct pointer_set_t*);
|
||||
#define cp_walk_tree(a,b,c,d) \
|
||||
|
@ -2985,6 +2985,25 @@ decl_linkage (tree decl)
|
||||
/* Everything else has internal linkage. */
|
||||
return lk_internal;
|
||||
}
|
||||
|
||||
/* Returns the storage duration of the object or reference associated with
|
||||
the indicated DECL, which should be a VAR_DECL or PARM_DECL. */
|
||||
|
||||
duration_kind
|
||||
decl_storage_duration (tree decl)
|
||||
{
|
||||
if (TREE_CODE (decl) == PARM_DECL)
|
||||
return dk_auto;
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
return dk_static;
|
||||
gcc_assert (TREE_CODE (decl) == VAR_DECL);
|
||||
if (!TREE_STATIC (decl)
|
||||
&& !DECL_EXTERNAL (decl))
|
||||
return dk_auto;
|
||||
if (DECL_THREAD_LOCAL_P (decl))
|
||||
return dk_thread;
|
||||
return dk_static;
|
||||
}
|
||||
|
||||
/* EXP is an expression that we want to pre-evaluate. Returns (in
|
||||
*INITP) an expression that will perform the pre-evaluation. The
|
||||
|
Loading…
Reference in New Issue
Block a user