typedef struct reference_expression_t reference_expression_t;
typedef struct cast_expression_t cast_expression_t;
typedef struct call_argument_t call_argument_t;
-typedef struct type_argument_t type_argument_t;
typedef struct call_expression_t call_expression_t;
typedef struct binary_expression_t binary_expression_t;
typedef struct unary_expression_t unary_expression_t;
typedef struct builtin_constant_expression_t builtin_constant_expression_t;
typedef struct builtin_types_compatible_expression_t builtin_types_compatible_expression_t;
typedef struct classify_type_expression_t classify_type_expression_t;
-typedef struct bitfield_extract_expression_t bitfield_extract_expression_t;
typedef struct label_address_expression_t label_address_expression_t;
typedef union expression_t expression_t;
typedef struct switch_statement_t switch_statement_t;
typedef struct declaration_statement_t declaration_statement_t;
typedef struct expression_statement_t expression_statement_t;
+typedef struct computed_goto_statement_t computed_goto_statement_t;
typedef struct goto_statement_t goto_statement_t;
typedef struct label_statement_t label_statement_t;
typedef struct case_label_statement_t case_label_statement_t;
} expression_classification_t;
/**
- * Returns true if a given expression is a compile time
- * constant. ยง6.6
- *
- * @param expression the expression to check
+ * Returns true when an initializer contains only constants/linker_constant
+ * values.
*/
expression_classification_t is_constant_initializer(const initializer_t *initializer);
/**
* Checks if an expression is a constant/known value to the linker. Examples:
- * - all constant expression casted to a pointer type
+ * - all constant/linker constant expression casted to a pointer type
* - "&x", with x being a global variable.
* - "array" or "a.array" in case array is an array and array and a,
* respectively is an object with link time constant address