What exactly does is_variable_sized test for?

Amittai Aviram amittai.Aviram@yale.edu
Wed Feb 22 04:51:00 GMT 2012


I am trying to understand some code in gcc/omp-low.c that calls the predicate is_variable_sized:

omp-low.c:is_variable_sized (const_tree expr)

where const_tree is a pointer to a constant tree_node, which is a union of a bunch of structures, but, in this case, it must be (I think) a tree_var_decl structure.  It is defined as follows:

static inline bool
is_variable_sized (const_tree expr)
{
  return !TREE_CONSTANT (TYPE_SIZE_UNIT (TREE_TYPE (expr)));
}

Unpacking the macros, I get
  return !expr->common.type->type.size_unit->base.constant_flag;

But what exactly does this mean?  What kind of C variable counts as "variable sized"?  Does that mean an array or struct type?  Thanks!

Amittai Aviram
PhD Student in Computer Science
Yale University
646 483 2639
amittai.aviram@yale.edu
http://www.amittai.com



More information about the Gcc-help mailing list