cparser
12 years agoUse the same struct variable_t for variable and parameter entities.
Christoph Mallon [Wed, 16 May 2012 04:53:40 +0000 (06:53 +0200)]
Use the same struct variable_t for variable and parameter entities.

They behave mostly the same, so this gets rid of some code duplication.

12 years agoUse %N to print entities.
Christoph Mallon [Tue, 15 May 2012 08:39:03 +0000 (10:39 +0200)]
Use %N to print entities.

12 years agoRemove duplicate word from error message.
Christoph Mallon [Tue, 15 May 2012 08:14:43 +0000 (10:14 +0200)]
Remove duplicate word from error message.

%N prints the entity kind, too.

12 years agoPrint entities (%N) instead of just symbols (%Y).
Christoph Mallon [Tue, 8 May 2012 13:54:05 +0000 (15:54 +0200)]
Print entities (%N) instead of just symbols (%Y).

12 years agoClean up parse_pragma().
Christoph Mallon [Sun, 13 May 2012 22:28:10 +0000 (00:28 +0200)]
Clean up parse_pragma().

12 years agoSimplify a check in parse_ifdef_ifndef_directive().
Christoph Mallon [Sun, 13 May 2012 21:43:48 +0000 (23:43 +0200)]
Simplify a check in parse_ifdef_ifndef_directive().

12 years agoBefore printing a token using its kind, check whether it has a symbol and print this...
Christoph Mallon [Sun, 13 May 2012 21:30:43 +0000 (23:30 +0200)]
Before printing a token using its kind, check whether it has a symbol and print this instead.

This makes a difference when there are different spellings for the same token.

12 years agoMove the symbol to token_base_t.
Christoph Mallon [Sun, 13 May 2012 21:27:46 +0000 (23:27 +0200)]
Move the symbol to token_base_t.

- This way all identifier-like tokens (identifiers and keywords) can be identified easily.
- This unbreaks parse_attribute_gnu_single(), if the attribute argument is (erroneously) a punctuator.

12 years agovariables are definition if they are not extern
Matthias Braun [Thu, 10 May 2012 18:35:12 +0000 (20:35 +0200)]
variables are definition if they are not extern

12 years agoalso pass language standard to the preprocessor
Matthias Braun [Wed, 9 May 2012 13:25:23 +0000 (15:25 +0200)]
also pass language standard to the preprocessor

12 years agoRemove the typedef for the non-existent type_argument_t.
Christoph Mallon [Tue, 8 May 2012 08:20:26 +0000 (10:20 +0200)]
Remove the typedef for the non-existent type_argument_t.

12 years agoImprove pretty printing: Do not print () around subexpressions consisting of a single...
Christoph Mallon [Fri, 20 Apr 2012 17:45:42 +0000 (19:45 +0200)]
Improve pretty printing: Do not print () around subexpressions consisting of a single token, even when in full parenthesization mode.

12 years agoImplement a GCC extension: binary constants 0[bB][01]+.
Christoph Mallon [Sun, 6 May 2012 17:37:44 +0000 (19:37 +0200)]
Implement a GCC extension: binary constants 0[bB][01]+.

12 years agoRemove the unnecessary distinction between T_FLOATINGPOINT and T_FLOATINGPOINT_HEXADE...
Christoph Mallon [Sun, 6 May 2012 17:33:28 +0000 (19:33 +0200)]
Remove the unnecessary distinction between T_FLOATINGPOINT and T_FLOATINGPOINT_HEXADECIMAL.

Just keep T_FLOATINGPOINT.

12 years agoRemove the unnecessary distinction between T_INTEGER, T_INTEGER_HEXADECIMAL and T_INT...
Christoph Mallon [Sun, 6 May 2012 17:25:33 +0000 (19:25 +0200)]
Remove the unnecessary distinction between T_INTEGER, T_INTEGER_HEXADECIMAL and T_INTEGER_OCTAL.

Just keep T_INTEGER.

12 years agoRemove the unnecessary distinction between EXPR_LITERAL_FLOATINGPOINT and EXPR_LITERA...
Christoph Mallon [Sun, 6 May 2012 17:28:45 +0000 (19:28 +0200)]
Remove the unnecessary distinction between EXPR_LITERAL_FLOATINGPOINT and EXPR_LITERAL_FLOATINGPOINT_HEXADECIMAL.

Just keep EXPR_LITERAL_FLOATINGPOINT.

12 years agoRemove the (mostly) unnecessary distinction between EXPR_LITERAL_INTEGER, EXPR_LITERA...
Christoph Mallon [Sun, 6 May 2012 17:17:51 +0000 (19:17 +0200)]
Remove the (mostly) unnecessary distinction between EXPR_LITERAL_INTEGER, EXPR_LITERAL_INTEGER_HEXADECIMAL and EXPR_LITERAL_INTEGER_OCTAL.

- Just keep EXPR_LITERAL_INTEGER.
- Only in create_integer_tarval() it is necessary to know, whether an integer constant ist decimal, but this test is easy (first char != '0').

12 years agoDo not strip the 0x prefix from the textual representation of hexadecimal constants.
Christoph Mallon [Sun, 6 May 2012 17:00:27 +0000 (19:00 +0200)]
Do not strip the 0x prefix from the textual representation of hexadecimal constants.

In particular this adds the missing prefix in print_token().

12 years agoRemove redundant test.
Christoph Mallon [Sun, 6 May 2012 17:12:27 +0000 (19:12 +0200)]
Remove redundant test.

The loop condition in print_stringrep() tests the same.

12 years agoSimplify how testing for signed/unsigned is encoded in create_integer_tarval().
Christoph Mallon [Sun, 6 May 2012 16:32:47 +0000 (18:32 +0200)]
Simplify how testing for signed/unsigned is encoded in create_integer_tarval().

12 years agoReport an error, if the exponent of a floating point constant has no digits.
Christoph Mallon [Sun, 6 May 2012 13:14:30 +0000 (15:14 +0200)]
Report an error, if the exponent of a floating point constant has no digits.

12 years agoCorrect parsing of the exponent of hexadecimal floating point constants: The number...
Christoph Mallon [Sun, 6 May 2012 13:12:36 +0000 (15:12 +0200)]
Correct parsing of the exponent of hexadecimal floating point constants: The number is base 10, not 16.

12 years agoHandle forcing the LINKAGE_C for main() in the parser, not ast2firm.
Christoph Mallon [Sun, 6 May 2012 09:45:50 +0000 (11:45 +0200)]
Handle forcing the LINKAGE_C for main() in the parser, not ast2firm.

12 years agoReplace is_sym_main() by is_main().
Christoph Mallon [Sat, 5 May 2012 17:28:23 +0000 (19:28 +0200)]
Replace is_sym_main() by is_main().

12 years agoWrap setting current_entity in PUSH_CURRENT_ENTITY() and POP_CURRENT_ENTITY().
Christoph Mallon [Sat, 5 May 2012 16:29:28 +0000 (18:29 +0200)]
Wrap setting current_entity in PUSH_CURRENT_ENTITY() and POP_CURRENT_ENTITY().

12 years agoDo not suppress warnings about unused parameters of main().
Christoph Mallon [Sat, 5 May 2012 08:02:52 +0000 (10:02 +0200)]
Do not suppress warnings about unused parameters of main().

This was added with the claim that gcc suppresses them, but apparently it does not.

12 years agoPass -x instead of incorrectly -std to the preprocessor.
Christoph Mallon [Sat, 5 May 2012 06:42:39 +0000 (08:42 +0200)]
Pass -x instead of incorrectly -std to the preprocessor.

12 years agoRemove the unnecessary special case for __alignof__(function) from alignof_to_firm().
Christoph Mallon [Sat, 5 May 2012 06:26:23 +0000 (08:26 +0200)]
Remove the unnecessary special case for __alignof__(function) from alignof_to_firm().

Functions have the "right" alignment set.

12 years agoRemove dead assignment.
Christoph Mallon [Sat, 5 May 2012 05:55:38 +0000 (07:55 +0200)]
Remove dead assignment.

12 years agoMake prepare_main_collect2() static.
Christoph Mallon [Sat, 5 May 2012 05:31:52 +0000 (07:31 +0200)]
Make prepare_main_collect2() static.

12 years agoSimplify get_symbol_from_token(): All keywords have symbols.
Christoph Mallon [Fri, 4 May 2012 17:48:43 +0000 (19:48 +0200)]
Simplify get_symbol_from_token(): All keywords have symbols.

12 years agoRemove T_ERROR and TP_ERROR.
Christoph Mallon [Fri, 4 May 2012 17:47:04 +0000 (19:47 +0200)]
Remove T_ERROR and TP_ERROR.

12 years agoImprove error recovery in parse_parameters().
Christoph Mallon [Sat, 5 May 2012 15:43:27 +0000 (17:43 +0200)]
Improve error recovery in parse_parameters().

12 years agoDo not remove comma from the anchor set in parse_parameters().
Christoph Mallon [Fri, 4 May 2012 17:21:38 +0000 (19:21 +0200)]
Do not remove comma from the anchor set in parse_parameters().

12 years agoUpdate libfirm, which corrects the handling of externally visible, but locally define...
Christoph Mallon [Sat, 5 May 2012 21:08:28 +0000 (23:08 +0200)]
Update libfirm, which corrects the handling of externally visible, but locally defined, variables.

12 years agoUpdate libfirm to unbreak PIC.
Christoph Mallon [Sat, 5 May 2012 15:38:42 +0000 (17:38 +0200)]
Update libfirm to unbreak PIC.

12 years agoadapt to latest libfirm version, fix inline semantic
Matthias Braun [Fri, 4 May 2012 12:45:58 +0000 (14:45 +0200)]
adapt to latest libfirm version, fix inline semantic

12 years agoinline is known to GNU89
Matthias Braun [Fri, 4 May 2012 12:44:03 +0000 (14:44 +0200)]
inline is known to GNU89

12 years agoAdd scopes to iteration and selection statements.
Christoph Mallon [Fri, 4 May 2012 07:30:53 +0000 (09:30 +0200)]
Add scopes to iteration and selection statements.

12 years agoFactorise code to create local declarations.
Christoph Mallon [Fri, 4 May 2012 07:17:56 +0000 (09:17 +0200)]
Factorise code to create local declarations.

12 years agoImprove error recovery in parse_if() by adding T_else to the anchors earlier.
Christoph Mallon [Thu, 3 May 2012 16:22:04 +0000 (18:22 +0200)]
Improve error recovery in parse_if() by adding T_else to the anchors earlier.

Also remove the unnecessary anchor '{'.

12 years agoEnter constant folding mode only in one place, i.e. fold_constant_to_tarval(), not...
Christoph Mallon [Sat, 28 Apr 2012 15:25:10 +0000 (17:25 +0200)]
Enter constant folding mode only in one place, i.e. fold_constant_to_tarval(), not in expression_to_firm(), too.

12 years agoRemove the typedef for the non-existent bitfield_extract_expression_t.
Christoph Mallon [Sat, 28 Apr 2012 10:55:55 +0000 (12:55 +0200)]
Remove the typedef for the non-existent bitfield_extract_expression_t.

12 years agoRemove unnecessary gotos.
Christoph Mallon [Sat, 28 Apr 2012 10:28:34 +0000 (12:28 +0200)]
Remove unnecessary gotos.

12 years agoRemove the parameter is_union from create_compound_type().
Christoph Mallon [Sat, 28 Apr 2012 10:07:17 +0000 (12:07 +0200)]
Remove the parameter is_union from create_compound_type().

The value can be determined from the given type.

12 years agoparse gnu __leaf__ attribute
Matthias Braun [Thu, 3 May 2012 14:12:11 +0000 (16:12 +0200)]
parse gnu __leaf__ attribute

(no code generation yet)

12 years agosort attribute enum alphabetically
Matthias Braun [Thu, 3 May 2012 14:03:25 +0000 (16:03 +0200)]
sort attribute enum alphabetically

12 years agoremove obsolete file
Matthias Braun [Fri, 27 Apr 2012 16:56:05 +0000 (18:56 +0200)]
remove obsolete file

12 years agoRewrite expect(): Do not jump on error anymore, but keep on parsing.
Christoph Mallon [Fri, 27 Apr 2012 16:27:21 +0000 (18:27 +0200)]
Rewrite expect(): Do not jump on error anymore, but keep on parsing.

12 years agoImprove error recovery in parse_attribute_gnu().
Christoph Mallon [Fri, 27 Apr 2012 09:16:02 +0000 (11:16 +0200)]
Improve error recovery in parse_attribute_gnu().

12 years agoImprove error recovery when a T_IDENTIFIER is expected.
Christoph Mallon [Fri, 27 Apr 2012 09:13:47 +0000 (11:13 +0200)]
Improve error recovery when a T_IDENTIFIER is expected.

- Introduce expect_identifier(), which is (surprise!) expect() tailored for identifiers.
- Add anchors at the users of expect_identifier().

12 years agoPass the source position to allocate_entity_zero() instead of setting it later on.
Christoph Mallon [Fri, 27 Apr 2012 07:00:21 +0000 (09:00 +0200)]
Pass the source position to allocate_entity_zero() instead of setting it later on.

12 years agoRemove redundant memset().
Christoph Mallon [Thu, 26 Apr 2012 17:36:07 +0000 (19:36 +0200)]
Remove redundant memset().

12 years agoRemove unnecessary local variable, which is only used once.
Christoph Mallon [Thu, 26 Apr 2012 17:23:39 +0000 (19:23 +0200)]
Remove unnecessary local variable, which is only used once.

12 years agoRemove anchors, when they are not expected anymore.
Christoph Mallon [Thu, 26 Apr 2012 17:22:25 +0000 (19:22 +0200)]
Remove anchors, when they are not expected anymore.

12 years agoDo not truncate the existing attribute list if a __declspec has no arguments.
Christoph Mallon [Thu, 26 Apr 2012 17:15:29 +0000 (19:15 +0200)]
Do not truncate the existing attribute list if a __declspec has no arguments.

12 years agoCorrect anchor underflow in case of error in parse_microsoft_extended_decl_modifier().
Christoph Mallon [Thu, 26 Apr 2012 17:13:24 +0000 (19:13 +0200)]
Correct anchor underflow in case of error in parse_microsoft_extended_decl_modifier().

12 years agoImprove error recovery in parse_compound_statement().
Christoph Mallon [Thu, 26 Apr 2012 12:53:09 +0000 (14:53 +0200)]
Improve error recovery in parse_compound_statement().

- Handle EOF generically with expect().
- Do not skip semantic checks, when breaking out of the parsing loop due to an error.

12 years agoRemove pointless skip loop: intern_parse_statement() only returns a single statement.
Christoph Mallon [Thu, 26 Apr 2012 12:37:10 +0000 (14:37 +0200)]
Remove pointless skip loop: intern_parse_statement() only returns a single statement.

12 years agoRemove pointless test: If intern_parse_statement() returns a STATEMENT_ERROR, then...
Christoph Mallon [Thu, 26 Apr 2012 12:28:11 +0000 (14:28 +0200)]
Remove pointless test: If intern_parse_statement() returns a STATEMENT_ERROR, then the current token is an anchor.

12 years agoRemove stale TODO.
Christoph Mallon [Thu, 26 Apr 2012 11:33:03 +0000 (13:33 +0200)]
Remove stale TODO.

12 years agoImprove error recovery in parse_asm_statement() and do not return an error statement.
Christoph Mallon [Thu, 26 Apr 2012 11:21:55 +0000 (13:21 +0200)]
Improve error recovery in parse_asm_statement() and do not return an error statement.

12 years agoImprove error recovery in parse_do() and do not return an error statement.
Christoph Mallon [Thu, 26 Apr 2012 11:17:25 +0000 (13:17 +0200)]
Improve error recovery in parse_do() and do not return an error statement.

12 years agoImprove error recovery in parse_for() and do not return an error statement.
Christoph Mallon [Thu, 26 Apr 2012 10:41:04 +0000 (12:41 +0200)]
Improve error recovery in parse_for() and do not return an error statement.

12 years agoPlug an extension leak on parse error in parse_for().
Christoph Mallon [Thu, 26 Apr 2012 10:18:44 +0000 (12:18 +0200)]
Plug an extension leak on parse error in parse_for().

12 years agoDo not return an error statement, if a goto misses its label argument, but create...
Christoph Mallon [Thu, 26 Apr 2012 06:40:57 +0000 (08:40 +0200)]
Do not return an error statement, if a goto misses its label argument, but create an anonymous label instead.

12 years agoDo not return an error statement from parse_ms_try_statment(), just keep on parsing.
Christoph Mallon [Wed, 25 Apr 2012 19:33:29 +0000 (21:33 +0200)]
Do not return an error statement from parse_ms_try_statment(), just keep on parsing.

12 years agoDo not refetch a value, which we already have.
Christoph Mallon [Wed, 25 Apr 2012 12:44:42 +0000 (14:44 +0200)]
Do not refetch a value, which we already have.

12 years agoDo not refetch a value, which we already have.
Christoph Mallon [Wed, 25 Apr 2012 12:37:06 +0000 (14:37 +0200)]
Do not refetch a value, which we already have.

12 years agoReduce variable scope.
Christoph Mallon [Wed, 25 Apr 2012 12:34:32 +0000 (14:34 +0200)]
Reduce variable scope.

12 years agoDo not refetch a value, which we already have.
Christoph Mallon [Wed, 25 Apr 2012 12:33:14 +0000 (14:33 +0200)]
Do not refetch a value, which we already have.

12 years agoOnly use the skipped type, the unskipped type is useless here.
Christoph Mallon [Wed, 25 Apr 2012 12:30:18 +0000 (14:30 +0200)]
Only use the skipped type, the unskipped type is useless here.

12 years agoMove the GNU special case for sizeof(function) from sizeof_to_firm() to get_type_size().
Christoph Mallon [Wed, 25 Apr 2012 11:16:04 +0000 (13:16 +0200)]
Move the GNU special case for sizeof(function) from sizeof_to_firm() to get_type_size().

12 years agoFactorise the code to parse conditions of statements, i.e. an expression enclosed...
Christoph Mallon [Wed, 25 Apr 2012 10:36:37 +0000 (12:36 +0200)]
Factorise the code to parse conditions of statements, i.e. an expression enclosed in parentheses.

This addresses several issues:
- No null pointer as condition anymore, if a if lacks its (.
- No anchor leak anymore, if a switch lacks its ).
- Better error recovery: No error statement anymore, if any part of a condition is missing.
- Less code duplication.

12 years agoRemove dead assignment and the stale assert, which checked for the dead value, with it.
Christoph Mallon [Wed, 25 Apr 2012 07:17:09 +0000 (09:17 +0200)]
Remove dead assignment and the stale assert, which checked for the dead value, with it.

12 years agoMove adding/removing ';' as anchor from intern_parse_statement() to parse_compound_st...
Christoph Mallon [Wed, 25 Apr 2012 07:11:07 +0000 (09:11 +0200)]
Move adding/removing ';' as anchor from intern_parse_statement() to parse_compound_statement().

It is already an anchor at {.S*} and then needs not to be repeated in intern_parse_statement() (and only adding ';' is a bit poor).

12 years agoDiscard all non-anchors from the input, not just the first one.
Christoph Mallon [Wed, 25 Apr 2012 07:01:50 +0000 (09:01 +0200)]
Discard all non-anchors from the input, not just the first one.

12 years agoPush the special case for compound types into get_ir_mode_storage().
Christoph Mallon [Wed, 25 Apr 2012 05:38:34 +0000 (07:38 +0200)]
Push the special case for compound types into get_ir_mode_storage().

It already had a special case for array types, now it handles all non-scalar types.

12 years agoadjust to latest libfirm debugoutput
Matthias Braun [Wed, 25 Apr 2012 23:30:55 +0000 (01:30 +0200)]
adjust to latest libfirm debugoutput

12 years agoAdjust cparser to extended debug information retrieval of libFirm, which includes...
Christoph Mallon [Tue, 24 Apr 2012 18:49:04 +0000 (20:49 +0200)]
Adjust cparser to extended debug information retrieval of libFirm, which includes the column.

12 years agoSimplify and reduce code duplication in return_statement_to_firm().
Christoph Mallon [Tue, 24 Apr 2012 18:12:18 +0000 (20:12 +0200)]
Simplify and reduce code duplication in return_statement_to_firm().

12 years agoUse the cparser type instead of the Firm type in return_statement_to_firm().
Christoph Mallon [Tue, 24 Apr 2012 17:21:41 +0000 (19:21 +0200)]
Use the cparser type instead of the Firm type in return_statement_to_firm().

12 years agoReduce code duplication in layout_struct_type().
Christoph Mallon [Tue, 24 Apr 2012 16:55:33 +0000 (18:55 +0200)]
Reduce code duplication in layout_struct_type().

12 years agoRemove the macro constant INVALID_TYPE, which is only used in comparisons, but never...
Christoph Mallon [Tue, 24 Apr 2012 11:01:53 +0000 (13:01 +0200)]
Remove the macro constant INVALID_TYPE, which is only used in comparisons, but never assigned.

12 years agoAdhere an obscure C++ rule: typedef T void; void f(T) {} is not a valid way to declar...
Christoph Mallon [Sun, 22 Apr 2012 14:04:24 +0000 (16:04 +0200)]
Adhere an obscure C++ rule: typedef T void; void f(T) {} is not a valid way to declare an empty parameter list.

12 years agoUse is_type_void(x) instead of x == type_void where qualified versions of void might...
Christoph Mallon [Sun, 22 Apr 2012 13:53:02 +0000 (15:53 +0200)]
Use is_type_void(x) instead of x == type_void where qualified versions of void might occur.

12 years agoImprove the error message if a qualified void type is used to denote an empty paramet...
Christoph Mallon [Sun, 22 Apr 2012 14:16:35 +0000 (16:16 +0200)]
Improve the error message if a qualified void type is used to denote an empty parameter list.

12 years agoReplace is_type_atomic(x, ATOMIC_TYPE_VOID) by the more concise is_type_void(x).
Christoph Mallon [Sun, 22 Apr 2012 11:30:46 +0000 (13:30 +0200)]
Replace is_type_atomic(x, ATOMIC_TYPE_VOID) by the more concise is_type_void(x).

12 years agoRemove the unused variables ir_type_void and ir_type_int.
Christoph Mallon [Sun, 22 Apr 2012 13:54:36 +0000 (15:54 +0200)]
Remove the unused variables ir_type_void and ir_type_int.

12 years agoFactorise code to conditionally print an error or a warning.
Christoph Mallon [Sun, 22 Apr 2012 07:13:15 +0000 (09:13 +0200)]
Factorise code to conditionally print an error or a warning.

12 years agoCorrect semantic check in parse_return(): A condition was inverted.
Christoph Mallon [Sat, 21 Apr 2012 21:09:19 +0000 (23:09 +0200)]
Correct semantic check in parse_return(): A condition was inverted.

12 years agoDo not get the break block of a switch before it is sure that a jump there is actuall...
Christoph Mallon [Sat, 21 Apr 2012 16:39:22 +0000 (18:39 +0200)]
Do not get the break block of a switch before it is sure that a jump there is actually created.

Usually the inner (compound) statement of a switch ends in a break or return, so there is no normal flow out of the switch statement.

12 years agoSplit jump_if_reachable() into jump_to() and jump_if_reachable().
Christoph Mallon [Sat, 21 Apr 2012 14:45:05 +0000 (16:45 +0200)]
Split jump_if_reachable() into jump_to() and jump_if_reachable().

- jump_to() does what jump_if_reachable() did before, i.e. create a Bad if the source is unreachable.
- jump_if_reachable() does nothing if the source is unreachable.
- Document in which case which of these two functions needs to be used.
- This prevents Bad predecessors in the usual cases, e.g. non-fallthrough case labels.

12 years agoIt is not necessary to remember the switch block to create the default Proj at the...
Christoph Mallon [Sat, 21 Apr 2012 15:49:24 +0000 (17:49 +0200)]
It is not necessary to remember the switch block to create the default Proj at the end.

12 years agoSimplify compound_statement_to_firm() by letting statement_to_firm() return an ir_nod...
Christoph Mallon [Fri, 20 Apr 2012 06:22:15 +0000 (08:22 +0200)]
Simplify compound_statement_to_firm() by letting statement_to_firm() return an ir_node* instead of just expression_statement_to_firm().

12 years agoFix walk_statement(): Walk the expression(s) of case labels, too.
Christoph Mallon [Fri, 20 Apr 2012 18:14:23 +0000 (20:14 +0200)]
Fix walk_statement(): Walk the expression(s) of case labels, too.

12 years agoReformat _expression_to_firm() for better readability.
Christoph Mallon [Tue, 17 Apr 2012 21:16:35 +0000 (23:16 +0200)]
Reformat _expression_to_firm() for better readability.

12 years agoRename EXPR_REFERENCE_ENUM_VALUE to EXPR_ENUM_CONSTANT.
Christoph Mallon [Tue, 17 Apr 2012 11:00:04 +0000 (13:00 +0200)]
Rename EXPR_REFERENCE_ENUM_VALUE to EXPR_ENUM_CONSTANT.

This is closer to what the C standard calls it (enumeration constant).

12 years agoShorten the edgaresque name reference_expression_enum_value_to_firm() to enum_constan...
Christoph Mallon [Tue, 17 Apr 2012 10:48:11 +0000 (12:48 +0200)]
Shorten the edgaresque name reference_expression_enum_value_to_firm() to enum_constant_to_firm().

This comes close to what the C standard calls it (enumeration constant).

12 years agoRemove special cases for EXPR_ERROR and TYPE_ERROR from constant folding and type...
Christoph Mallon [Tue, 17 Apr 2012 10:35:20 +0000 (12:35 +0200)]
Remove special cases for EXPR_ERROR and TYPE_ERROR from constant folding and type construction.

We do not fold expressions containing errors anymore.