cparser
15 years agokeep it simple and stupid: cast to unsigned instead of messing around with SIZET_FMT...
Matthias Braun [Sun, 16 Nov 2008 23:16:20 +0000 (23:16 +0000)]
keep it simple and stupid: cast to unsigned instead of messing around with SIZET_FMT define

[r23715]

15 years ago- %zu is not supported on windows
Michael Beck [Sun, 16 Nov 2008 22:35:01 +0000 (22:35 +0000)]
- %zu is not supported on windows
- kicked some obstack_printf()

[r23714]

15 years agoImplement mangling of complex and imaginary types.
Christoph Mallon [Sun, 16 Nov 2008 15:47:06 +0000 (15:47 +0000)]
Implement mangling of complex and imaginary types.

[r23713]

15 years agoPartially implement mangling of array types.
Christoph Mallon [Sun, 16 Nov 2008 15:39:27 +0000 (15:39 +0000)]
Partially implement mangling of array types.

[r23712]

15 years agoPartially implement mangling of enum types.
Christoph Mallon [Sun, 16 Nov 2008 14:43:26 +0000 (14:43 +0000)]
Partially implement mangling of enum types.

[r23711]

15 years agoPartially implement mangling of compound types.
Christoph Mallon [Sun, 16 Nov 2008 14:30:09 +0000 (14:30 +0000)]
Partially implement mangling of compound types.

[r23710]

15 years agoProcess calling convention attributes again.
Christoph Mallon [Sun, 16 Nov 2008 12:07:09 +0000 (12:07 +0000)]
Process calling convention attributes again.

[r23709]

15 years agoRemove wrong \n.
Christoph Mallon [Sun, 16 Nov 2008 11:45:53 +0000 (11:45 +0000)]
Remove wrong \n.

[r23708]

15 years agoMove local variable declaration closer to its use.
Christoph Mallon [Sun, 16 Nov 2008 11:06:01 +0000 (11:06 +0000)]
Move local variable declaration closer to its use.

[r23707]

15 years agoFix condition of multi-char constant warning.
Christoph Mallon [Sun, 16 Nov 2008 10:36:19 +0000 (10:36 +0000)]
Fix condition of multi-char constant warning.

[r23706]

15 years agoFix r23702 and r23704.
Christoph Mallon [Sun, 16 Nov 2008 10:30:35 +0000 (10:30 +0000)]
Fix r23702 and r23704.

[r23705]

15 years agoSlightly simplify daisy chaining gotos.
Christoph Mallon [Sun, 16 Nov 2008 10:25:16 +0000 (10:25 +0000)]
Slightly simplify daisy chaining gotos.

[r23704]

15 years agoFix comment.
Christoph Mallon [Sun, 16 Nov 2008 10:21:42 +0000 (10:21 +0000)]
Fix comment.

[r23703]

15 years agoSlightly simplify daisy chaining labels.
Christoph Mallon [Sun, 16 Nov 2008 10:18:45 +0000 (10:18 +0000)]
Slightly simplify daisy chaining labels.

[r23702]

15 years agoSlightly simplify daisy chaining in parse_asm_arguments().
Christoph Mallon [Sun, 16 Nov 2008 09:59:42 +0000 (09:59 +0000)]
Slightly simplify daisy chaining in parse_asm_arguments().

[r23701]

15 years agoRemove redundant conditions.
Christoph Mallon [Sun, 16 Nov 2008 08:55:29 +0000 (08:55 +0000)]
Remove redundant conditions.

[r23700]

15 years agoWarn about reference address as bool in for, while and do-while, too.
Christoph Mallon [Sun, 16 Nov 2008 08:19:17 +0000 (08:19 +0000)]
Warn about reference address as bool in for, while and do-while, too.

[r23699]

15 years agoDo not panic, when the expression walker of the statement walker encounters an invali...
Christoph Mallon [Sun, 16 Nov 2008 07:40:13 +0000 (07:40 +0000)]
Do not panic, when the expression walker of the statement walker encounters an invalid expression.

[r23698]

15 years agoWarn about reference address as bool in condition of ?: and if (), too, not only...
Christoph Mallon [Sun, 16 Nov 2008 07:25:43 +0000 (07:25 +0000)]
Warn about reference address as bool in condition of ?: and if (), too, not only operands of !, && and ||.

[r23697]

15 years agoRename warn_function_address_as_bool() to warn_reference_address_as_bool(), because...
Christoph Mallon [Sun, 16 Nov 2008 07:22:42 +0000 (07:22 +0000)]
Rename warn_function_address_as_bool() to warn_reference_address_as_bool(), because it is not only for functions, but variables, too.

[r23696]

15 years agoFix get_reference_address(), which was broken in r23351.
Christoph Mallon [Sun, 16 Nov 2008 07:21:05 +0000 (07:21 +0000)]
Fix get_reference_address(), which was broken in r23351.

[r23695]

15 years agoFix off-by-one error in error message.
Christoph Mallon [Sat, 15 Nov 2008 22:53:26 +0000 (22:53 +0000)]
Fix off-by-one error in error message.

[r23694]

15 years agoFix off-by-one error in error message.
Christoph Mallon [Sat, 15 Nov 2008 22:51:28 +0000 (22:51 +0000)]
Fix off-by-one error in error message.

[r23693]

15 years agoUse the correct format specifier for the return value of strlen().
Christoph Mallon [Sat, 15 Nov 2008 22:13:37 +0000 (22:13 +0000)]
Use the correct format specifier for the return value of strlen().

[r23692]

15 years agoThe outer function entity does not use the F...E delimiters and return type decoration.
Christoph Mallon [Sat, 15 Nov 2008 14:43:08 +0000 (14:43 +0000)]
The outer function entity does not use the F...E delimiters and return type decoration.

[r23685]

15 years agoEmpty parameter lists are mangled as "v".
Christoph Mallon [Sat, 15 Nov 2008 14:33:15 +0000 (14:33 +0000)]
Empty parameter lists are mangled as "v".

[r23684]

15 years agoThe order for type qualifiers in mangled names is r, V, K.
Christoph Mallon [Sat, 15 Nov 2008 14:13:34 +0000 (14:13 +0000)]
The order for type qualifiers in mangled names is r, V, K.

[r23683]

15 years agoSimplify further.
Christoph Mallon [Sat, 15 Nov 2008 13:27:36 +0000 (13:27 +0000)]
Simplify further.

[r23682]

15 years agoSlightly simplify creating an ident from a string on an obstack.
Christoph Mallon [Sat, 15 Nov 2008 13:20:05 +0000 (13:20 +0000)]
Slightly simplify creating an ident from a string on an obstack.

[r23681]

15 years agoImprove linkage specification
Christoph Mallon [Sat, 15 Nov 2008 13:17:12 +0000 (13:17 +0000)]
Improve linkage specification
- linkage is an enum now
- accept extern "C++", which is required by the C++ standard.

[r23680]

15 years agoImprove win32 name mangling:
Christoph Mallon [Sat, 15 Nov 2008 12:17:50 +0000 (12:17 +0000)]
Improve win32 name mangling:
- handle fastcall
- mangle parameters for C++ linkage.

[r23679]

15 years agoThe calling convention is orthogonal to the linkage specification.
Christoph Mallon [Sat, 15 Nov 2008 10:59:20 +0000 (10:59 +0000)]
The calling convention is orthogonal to the linkage specification.

[r23678]

15 years agostatic.
Christoph Mallon [Sat, 15 Nov 2008 08:48:32 +0000 (08:48 +0000)]
static.

[r23676]

15 years agoFix argument for error message: It must be a string, not an enum.
Christoph Mallon [Sat, 15 Nov 2008 08:48:05 +0000 (08:48 +0000)]
Fix argument for error message: It must be a string, not an enum.

[r23675]

15 years ago- don't use obstack_printf() when not necessary
Michael Beck [Fri, 14 Nov 2008 23:29:39 +0000 (23:29 +0000)]
- don't use obstack_printf() when not necessary

[r23674]

15 years ago- fixed a lot of 'enum type mixed with ...' warnings
Michael Beck [Fri, 14 Nov 2008 23:11:49 +0000 (23:11 +0000)]
- fixed a lot of 'enum type mixed with ...' warnings

[r23673]

15 years ago- fixed warning
Michael Beck [Fri, 14 Nov 2008 23:11:00 +0000 (23:11 +0000)]
- fixed warning

[r23672]

15 years ago- use _Bool for C99 or intel compiler issue a lot of warnings
Michael Beck [Fri, 14 Nov 2008 23:09:53 +0000 (23:09 +0000)]
- use _Bool for C99 or intel compiler issue a lot of warnings

[r23671]

15 years agofix string initializer when implicitely going down arrays
Matthias Braun [Fri, 14 Nov 2008 15:55:44 +0000 (15:55 +0000)]
fix string initializer when implicitely going down arrays

[r23663]

15 years agoMore work for C++ mode:
Matthias Braun [Fri, 14 Nov 2008 15:34:32 +0000 (15:34 +0000)]
More work for C++ mode:

* Can parse (but not produce usefull code) for namespace now
* mangle function names according to Itanium C++ ABI
* Parse custom linkage for function types

[r23661]

15 years agoTeach cparser how to parse (f)(void);, i.e. global declarations can start with a (.
Christoph Mallon [Fri, 14 Nov 2008 15:16:27 +0000 (15:16 +0000)]
Teach cparser how to parse (f)(void);, i.e. global declarations can start with a (.

[r23658]

15 years agodelete temp files
Matthias Braun [Fri, 14 Nov 2008 12:55:25 +0000 (12:55 +0000)]
delete temp files

[r23653]

15 years agomore cleanup
Matthias Braun [Fri, 14 Nov 2008 12:40:15 +0000 (12:40 +0000)]
more cleanup

[r23651]

15 years agouse ushort wchar_t on mingw
Matthias Braun [Fri, 14 Nov 2008 12:37:57 +0000 (12:37 +0000)]
use ushort wchar_t on mingw

[r23650]

15 years agomissing break
Matthias Braun [Fri, 14 Nov 2008 12:36:23 +0000 (12:36 +0000)]
missing break

[r23649]

15 years agomost of the options are handled in main.c now
Matthias Braun [Fri, 14 Nov 2008 12:35:45 +0000 (12:35 +0000)]
most of the options are handled in main.c now

[r23648]

15 years ago- Try to move OS/target specific stuff to lang_features.h and main.c
Matthias Braun [Fri, 14 Nov 2008 12:34:35 +0000 (12:34 +0000)]
- Try to move OS/target specific stuff to lang_features.h and main.c
- In this case: initialize types in types.c and set stuff like short_wchar
  in main

[r23647]

15 years agofix local labels
Matthias Braun [Thu, 13 Nov 2008 14:02:44 +0000 (14:02 +0000)]
fix local labels

[r23632]

15 years agopass correct modes to 64bit lowerer
Matthias Braun [Thu, 13 Nov 2008 13:36:42 +0000 (13:36 +0000)]
pass correct modes to 64bit lowerer

[r23626]

15 years agono need for a separate local_label stack, the scoping rules are exactly the same...
Matthias Braun [Thu, 13 Nov 2008 12:36:22 +0000 (12:36 +0000)]
no need for a separate local_label stack, the scoping rules are exactly the same as for the normal environment_stack

[r23622]

15 years agoavoid warnings and fix potential bugs (if someone manages to get a % into a function...
Matthias Braun [Thu, 13 Nov 2008 11:23:04 +0000 (11:23 +0000)]
avoid warnings and fix potential bugs (if someone manages to get a % into a function name

[r23615]

15 years agofix assert
Matthias Braun [Thu, 13 Nov 2008 10:26:42 +0000 (10:26 +0000)]
fix assert

[r23612]

15 years agoc frontend doesn't case about modulo_shift, rename modes to uppercase so it dumps...
Matthias Braun [Tue, 11 Nov 2008 19:56:32 +0000 (19:56 +0000)]
c frontend doesn't case about modulo_shift, rename modes to uppercase so it dumps nicer

[r23580]

15 years agoIn C++ the result type of !, <, <=, >=, >, == and != is bool.
Christoph Mallon [Mon, 10 Nov 2008 09:38:26 +0000 (09:38 +0000)]
In C++ the result type of !, <, <=, >=, >, == and != is bool.

[r23539]

15 years agoParse C++ bool, false and true.
Christoph Mallon [Mon, 10 Nov 2008 09:23:31 +0000 (09:23 +0000)]
Parse C++ bool, false and true.

[r23538]

15 years agomore work towards expansion of macros with arguments
Matthias Braun [Fri, 7 Nov 2008 08:18:40 +0000 (08:18 +0000)]
more work towards expansion of macros with arguments

[r23505]

15 years ago- renamed option end-melt to shape-blocks
Michael Beck [Thu, 6 Nov 2008 15:09:52 +0000 (15:09 +0000)]
- renamed option end-melt to shape-blocks
- let the switch lowerer run after the block shaper

[r23490]

15 years agoWhen creating an error typedef, set its type to the error type, so nobody encounters...
Christoph Mallon [Tue, 4 Nov 2008 15:00:36 +0000 (15:00 +0000)]
When creating an error typedef, set its type to the error type, so nobody encounters a null pointer later on.

[r23434]

15 years agoDo not panic, when finding a typedef name, when an expression is expected.
Christoph Mallon [Tue, 4 Nov 2008 14:51:53 +0000 (14:51 +0000)]
Do not panic, when finding a typedef name, when an expression is expected.

[r23433]

15 years agouse expect() to find the ] of an array access expression.
Christoph Mallon [Tue, 4 Nov 2008 14:37:49 +0000 (14:37 +0000)]
use expect() to find the ] of an array access expression.

[r23432]

15 years agoSet the source position in allocate_expression_zero().
Christoph Mallon [Tue, 4 Nov 2008 14:34:01 +0000 (14:34 +0000)]
Set the source position in allocate_expression_zero().

[r23431]

15 years agoTell the ast printer a thing ot two about EXPR_REFERENCE_ENUM_VALUE.
Christoph Mallon [Tue, 4 Nov 2008 14:28:10 +0000 (14:28 +0000)]
Tell the ast printer a thing ot two about EXPR_REFERENCE_ENUM_VALUE.

[r23430]

15 years agofix parsing of define argument lists, fix subtle problems with first token of include...
Matthias Braun [Tue, 4 Nov 2008 10:04:31 +0000 (10:04 +0000)]
fix parsing of define argument lists, fix subtle problems with first token of included file not expanded, fix skip_spaces ignoring comments

[r23425]

15 years agomodifier to print preprocessing token
Matthias Braun [Tue, 4 Nov 2008 10:03:34 +0000 (10:03 +0000)]
modifier to print preprocessing token

[r23424]

15 years agoprint tokens without surrounding ''
Matthias Braun [Tue, 4 Nov 2008 10:03:12 +0000 (10:03 +0000)]
print tokens without surrounding ''

[r23423]

15 years agomore tricky preprocessor problems
Matthias Braun [Tue, 4 Nov 2008 09:43:14 +0000 (09:43 +0000)]
more tricky preprocessor problems

[r23421]

15 years agoif(n)def implementation
Matthias Braun [Mon, 3 Nov 2008 16:25:11 +0000 (16:25 +0000)]
if(n)def implementation

[r23414]

15 years agoimplemented #include
Matthias Braun [Mon, 3 Nov 2008 01:22:50 +0000 (01:22 +0000)]
implemented #include

[r23399]

15 years agoadd beginnings of preprocessor code (and ugly hack to activate it) to svn
Matthias Braun [Sun, 2 Nov 2008 16:58:26 +0000 (16:58 +0000)]
add beginnings of preprocessor code (and ugly hack to activate it) to svn

[r23396]

15 years agoEXPR_INVALID gets constructed in case of errors
Matthias Braun [Sun, 2 Nov 2008 16:36:26 +0000 (16:36 +0000)]
EXPR_INVALID gets constructed in case of errors

[r23392]

15 years agoimprove flexible array member handling, assign error_type to error_entity
Matthias Braun [Sun, 2 Nov 2008 16:33:58 +0000 (16:33 +0000)]
improve flexible array member handling, assign error_type to error_entity

[r23390]

15 years agoset has_implicit_size flag
Matthias Braun [Sun, 2 Nov 2008 14:41:31 +0000 (14:41 +0000)]
set has_implicit_size flag

[r23385]

15 years agoTODO update
Matthias Braun [Sun, 2 Nov 2008 11:44:30 +0000 (11:44 +0000)]
TODO update

[r23382]

15 years agoMove more C tests
Matthias Braun [Sat, 1 Nov 2008 19:18:58 +0000 (19:18 +0000)]
Move more C tests

[r23372]

15 years agomove C frontend tests
Matthias Braun [Sat, 1 Nov 2008 19:18:31 +0000 (19:18 +0000)]
move C frontend tests

[r23371]

15 years agoadd main, fix warnings not intended
Matthias Braun [Sat, 1 Nov 2008 17:39:06 +0000 (17:39 +0000)]
add main, fix warnings not intended

[r23357]

15 years agothis should not be here
Matthias Braun [Sat, 1 Nov 2008 17:32:22 +0000 (17:32 +0000)]
this should not be here

[r23356]

15 years agowrite a testapp that really test functionality (so we can actually detect the impleme...
Matthias Braun [Sat, 1 Nov 2008 17:20:48 +0000 (17:20 +0000)]
write a testapp that really test functionality (so we can actually detect the implementation bugs)

[r23355]

15 years agolocal labels should be fixed
Matthias Braun [Sat, 1 Nov 2008 17:12:31 +0000 (17:12 +0000)]
local labels should be fixed

[r23354]

15 years agopartly fix local labels, %P already prints %P an at no need for additional ones in...
Matthias Braun [Sat, 1 Nov 2008 17:11:17 +0000 (17:11 +0000)]
partly fix local labels, %P already prints %P an at no need for additional ones in the messages

[r23353]

15 years agoconditional expressions true case may be NULL as a GNU extension
Matthias Braun [Sat, 1 Nov 2008 17:05:58 +0000 (17:05 +0000)]
conditional expressions true case may be NULL as a GNU extension

[r23352]

15 years agodeclaration_t -> entity_t
Matthias Braun [Sat, 1 Nov 2008 17:00:35 +0000 (17:00 +0000)]
declaration_t -> entity_t
This breaks up the monotolithic declaration_t monster in a bunch of different
structs like variable_t, function_t or label_t
Not everything back to the way it was, but SPEC seems to work now. Just some obscure gnu extensions missing.

[r23351]

15 years agofix warning
Matthias Braun [Sat, 1 Nov 2008 16:55:14 +0000 (16:55 +0000)]
fix warning

[r23349]

15 years agothis is a gnu extension I guess
Matthias Braun [Sat, 1 Nov 2008 15:45:01 +0000 (15:45 +0000)]
this is a gnu extension I guess

[r23348]

15 years agotest implicit type for k&r functions
Matthias Braun [Sat, 1 Nov 2008 15:17:47 +0000 (15:17 +0000)]
test implicit type for k&r functions

[r23347]

15 years ago- add option -end-melt
Michael Beck [Tue, 28 Oct 2008 15:54:18 +0000 (15:54 +0000)]
- add option -end-melt

[r23282]

15 years ago- further fixed r23189
Michael Beck [Mon, 27 Oct 2008 18:03:02 +0000 (18:03 +0000)]
- further fixed r23189

[r23242]

15 years agoFix anchor token underflow while parsing for-statements.
Christoph Mallon [Mon, 27 Oct 2008 15:44:09 +0000 (15:44 +0000)]
Fix anchor token underflow while parsing for-statements.

[r23236]

15 years agoParse sizeof(T){...} correctly, i.e. not sizeof type, but sizeof expression starting...
Christoph Mallon [Mon, 27 Oct 2008 15:40:15 +0000 (15:40 +0000)]
Parse sizeof(T){...} correctly, i.e. not sizeof type, but sizeof expression starting with a compound literal.

[r23234]

15 years agoAdd the C++ :: token.
Christoph Mallon [Mon, 27 Oct 2008 12:17:13 +0000 (12:17 +0000)]
Add the C++ :: token.

[r23226]

15 years agoParse and check semantic of delete expressions.
Christoph Mallon [Mon, 27 Oct 2008 11:40:23 +0000 (11:40 +0000)]
Parse and check semantic of delete expressions.

[r23225]

15 years agoC++ banned implicit int.
Christoph Mallon [Mon, 27 Oct 2008 11:08:09 +0000 (11:08 +0000)]
C++ banned implicit int.

[r23224]

15 years agoC++ does not allow assignment from a void pointer type to a non-void pointer type.
Christoph Mallon [Mon, 27 Oct 2008 11:00:18 +0000 (11:00 +0000)]
C++ does not allow assignment from a void pointer type to a non-void pointer type.

[r23223]

15 years agoC++ has not "tentative definitions".
Christoph Mallon [Mon, 27 Oct 2008 10:50:48 +0000 (10:50 +0000)]
C++ has not "tentative definitions".

[r23222]

15 years agoC++ function declarations with an empty parameter list denote no parameters instead...
Christoph Mallon [Mon, 27 Oct 2008 10:46:15 +0000 (10:46 +0000)]
C++ function declarations with an empty parameter list denote no parameters instead of unspecified parameters.

[r23221]

15 years agoParse and check semantic of throw expressions.
Christoph Mallon [Mon, 27 Oct 2008 10:32:09 +0000 (10:32 +0000)]
Parse and check semantic of throw expressions.

[r23220]

15 years agoRemove if, whose condition is never true.
Christoph Mallon [Mon, 27 Oct 2008 06:48:38 +0000 (06:48 +0000)]
Remove if, whose condition is never true.

[r23219]

15 years agoIn C++ (most) character literals are of type char.
Christoph Mallon [Sun, 26 Oct 2008 20:55:23 +0000 (20:55 +0000)]
In C++ (most) character literals are of type char.

[r23218]

15 years agoAdd C++ keywords.
Christoph Mallon [Sun, 26 Oct 2008 20:38:34 +0000 (20:38 +0000)]
Add C++ keywords.

[r23217]

15 years agoFirst bit of C++ support: Different precedence for ?:.
Christoph Mallon [Sun, 26 Oct 2008 19:49:53 +0000 (19:49 +0000)]
First bit of C++ support: Different precedence for ?:.

[r23216]