remove EXPR_INVALID, EXPR_ERROR is enough
authorMatthias Braun <matze@braunis.de>
Sat, 13 Aug 2011 11:47:18 +0000 (13:47 +0200)
committerMatthias Braun <matze@braunis.de>
Sat, 13 Aug 2011 11:47:18 +0000 (13:47 +0200)
ast.c
ast2firm.c
ast_t.h
parser.c
type_t.h
walk.c

diff --git a/ast.c b/ast.c
index 3ee0201..3b88da7 100644 (file)
--- a/ast.c
+++ b/ast.c
@@ -100,7 +100,6 @@ static int right_to_left(unsigned precedence)
 static unsigned get_expression_precedence(expression_kind_t kind)
 {
        static const unsigned prec[] = {
-               [EXPR_INVALID]                           = PREC_PRIMARY,
                [EXPR_REFERENCE]                         = PREC_PRIMARY,
                [EXPR_REFERENCE_ENUM_VALUE]              = PREC_PRIMARY,
                [EXPR_LITERAL_INTEGER]                   = PREC_PRIMARY,
@@ -752,15 +751,6 @@ static void print_expression_prec(const expression_t *expression, unsigned top_p
        case EXPR_STATEMENT:
                print_statement_expression(&expression->statement);
                break;
-       case EXPR_INVALID:
-               panic("invalid expression found");
-
-#if 0
-       default:
-               /* TODO */
-               print_format("some expression of type %d", (int)expression->kind);
-               break;
-#endif
        }
        if (parenthesized)
                print_string(")");
@@ -1620,8 +1610,6 @@ static expression_classification_t is_object_with_linker_constant_address(
 
        case EXPR_ERROR:
                return EXPR_CLASS_ERROR;
-       case EXPR_INVALID:
-               panic("invalid expression found");
 
        default:
                return EXPR_CLASS_VARIABLE;
@@ -1748,8 +1736,6 @@ expression_classification_t is_linker_constant(const expression_t *expression)
 
        case EXPR_ERROR:
                return EXPR_CLASS_ERROR;
-       case EXPR_INVALID:
-               panic("invalid expression found");
 
        default:
                return EXPR_CLASS_VARIABLE;
@@ -1830,8 +1816,6 @@ static expression_classification_t is_object_with_constant_address(const express
 
        case EXPR_ERROR:
                return EXPR_CLASS_ERROR;
-       case EXPR_INVALID:
-               panic("invalid expression found");
 
        default:
                return EXPR_CLASS_VARIABLE;
@@ -1982,8 +1966,6 @@ expression_classification_t is_constant_expression(const expression_t *expressio
 
        case EXPR_ERROR:
                return EXPR_CLASS_ERROR;
-       case EXPR_INVALID:
-               break;
        }
        panic("invalid expression found (is constant expression)");
 }
index 5089a01..84c29da 100644 (file)
@@ -3595,8 +3595,6 @@ static ir_node *_expression_to_firm(const expression_t *expression)
 
        case EXPR_ERROR:
                return error_to_firm(expression);
-       case EXPR_INVALID:
-               break;
        }
        panic("invalid expression found");
 }
diff --git a/ast_t.h b/ast_t.h
index e7a95c1..4ed8563 100644 (file)
--- a/ast_t.h
+++ b/ast_t.h
@@ -62,8 +62,7 @@ typedef enum precedence_t {
  * Expression kinds.
  */
 typedef enum expression_kind_t {
-       EXPR_INVALID = 0,
-       EXPR_ERROR,
+       EXPR_ERROR = 1,
        EXPR_REFERENCE,
        EXPR_REFERENCE_ENUM_VALUE,
        EXPR_LITERAL_BOOLEAN,
@@ -668,11 +667,6 @@ struct translation_unit_t {
        statement_t *global_asm;
 };
 
-static inline bool is_invalid_expression(expression_t *expression)
-{
-       return expression->base.kind == EXPR_INVALID;
-}
-
 static inline bool is_invalid_statement(statement_t *statement)
 {
        return statement->base.kind == STATEMENT_INVALID;
index 2fbb6cb..2bafb60 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -316,7 +316,6 @@ static size_t get_statement_struct_size(statement_kind_t kind)
 static size_t get_expression_struct_size(expression_kind_t kind)
 {
        static const size_t sizes[] = {
-               [EXPR_INVALID]                    = sizeof(expression_base_t),
                [EXPR_ERROR]                      = sizeof(expression_base_t),
                [EXPR_REFERENCE]                  = sizeof(reference_expression_t),
                [EXPR_REFERENCE_ENUM_VALUE]       = sizeof(reference_expression_t),
@@ -1550,7 +1549,6 @@ unary:
                        return;
 
                EXPR_LITERAL_CASES
-               case EXPR_INVALID:
                case EXPR_ERROR:
                case EXPR_STRING_LITERAL:
                case EXPR_WIDE_STRING_LITERAL:
@@ -4781,7 +4779,6 @@ static bool expression_returns(expression_t const *const expr)
                case EXPR_BUILTIN_CONSTANT_P:
                case EXPR_BUILTIN_TYPES_COMPATIBLE_P:
                case EXPR_OFFSETOF:
-               case EXPR_INVALID:
                case EXPR_ERROR:
                        return true;
 
@@ -8528,8 +8525,7 @@ static void semantic_binexpr_assign(binary_expression_t *expression)
 static bool expression_has_effect(const expression_t *const expr)
 {
        switch (expr->kind) {
-               case EXPR_ERROR:
-               case EXPR_INVALID:                    return true; /* do NOT warn */
+               case EXPR_ERROR:                      return true; /* do NOT warn */
                case EXPR_REFERENCE:                  return false;
                case EXPR_REFERENCE_ENUM_VALUE:       return false;
                case EXPR_LABEL_ADDRESS:              return false;
index 68e0966..05af673 100644 (file)
--- a/type_t.h
+++ b/type_t.h
@@ -32,7 +32,7 @@
 #include "adt/obst.h"
 
 typedef enum type_kind_t {
-       TYPE_ERROR,
+       TYPE_ERROR = 1,
        TYPE_ATOMIC,
        TYPE_COMPLEX,
        TYPE_IMAGINARY,
diff --git a/walk.c b/walk.c
index d1cd35d..ae097f1 100644 (file)
--- a/walk.c
+++ b/walk.c
@@ -185,8 +185,6 @@ static void walk_expression(expression_t *const expr,
        case EXPR_LABEL_ADDRESS:
        case EXPR_ERROR:
                return;
-       case EXPR_INVALID:
-               break;
        }
        panic("invalid expr kind");
 }