bool is_address_constant(const expression_t *expression)
{
switch (expression->kind) {
+ case EXPR_STRING_LITERAL:
+ case EXPR_WIDE_STRING_LITERAL:
+ case EXPR_FUNCNAME:
+ case EXPR_LABEL_ADDRESS:
+ return true;
+
case EXPR_UNARY_TAKE_ADDRESS:
return is_object_with_linker_constant_address(expression->unary.value);
*/
bool is_constant_expression(const expression_t *expression);
+/**
+ * An object with a fixed but at compiletime unknown adress which will be known
+ * at link/load time.
+ */
bool is_address_constant(const expression_t *expression);
long fold_constant(const expression_t *expression);