cparser
15 years agoskip_typeref().
Christoph Mallon [Wed, 19 Nov 2008 09:02:39 +0000 (09:02 +0000)]
skip_typeref().

[r23795]

15 years agoTurn the two bool parameters of parse_declarator() into an enum.
Christoph Mallon [Wed, 19 Nov 2008 08:46:59 +0000 (08:46 +0000)]
Turn the two bool parameters of parse_declarator() into an enum.

[r23794]

15 years agoImprove error message.
Christoph Mallon [Wed, 19 Nov 2008 07:41:23 +0000 (07:41 +0000)]
Improve error message.

[r23793]

15 years agoEnsure that references are initialised.
Christoph Mallon [Wed, 19 Nov 2008 07:39:18 +0000 (07:39 +0000)]
Ensure that references are initialised.

[r23792]

15 years agoPut warning under warning.other flag.
Christoph Mallon [Wed, 19 Nov 2008 07:07:51 +0000 (07:07 +0000)]
Put warning under warning.other flag.

[r23791]

15 years agoReally call ourselves as promised, otherwise this leads to spurious warnings.
Christoph Mallon [Tue, 18 Nov 2008 22:11:24 +0000 (22:11 +0000)]
Really call ourselves as promised, otherwise this leads to spurious warnings.

[r23787]

15 years agoFactorise macro.
Christoph Mallon [Tue, 18 Nov 2008 22:06:39 +0000 (22:06 +0000)]
Factorise macro.

[r23786]

15 years agoBe more consistent, when talking about types in error messages.
Christoph Mallon [Tue, 18 Nov 2008 22:04:32 +0000 (22:04 +0000)]
Be more consistent, when talking about types in error messages.

[r23785]

15 years agoCite the standard and adhere it a bit more.
Christoph Mallon [Tue, 18 Nov 2008 21:59:49 +0000 (21:59 +0000)]
Cite the standard and adhere it a bit more.

[r23783]

15 years ago- Factorise code to check the semantic of conditions
Christoph Mallon [Tue, 18 Nov 2008 21:29:18 +0000 (21:29 +0000)]
- Factorise code to check the semantic of conditions
- Always set the result type of && and ||
- Do semantic check for the condition of if-statements.

[r23781]

15 years agoFix last commit.
Christoph Mallon [Tue, 18 Nov 2008 19:29:37 +0000 (19:29 +0000)]
Fix last commit.

[r23779]

15 years agoAdd semantic check: §6.8.5:2 The controlling expression of an iteration statement...
Christoph Mallon [Tue, 18 Nov 2008 19:26:58 +0000 (19:26 +0000)]
Add semantic check: §6.8.5:2 The controlling expression of an iteration statement shall have scalar type.

[r23778]

15 years agoSimplify if-cascade.
Christoph Mallon [Tue, 18 Nov 2008 19:10:33 +0000 (19:10 +0000)]
Simplify if-cascade.

[r23775]

15 years agoFix r23726.
Christoph Mallon [Tue, 18 Nov 2008 18:56:47 +0000 (18:56 +0000)]
Fix r23726.

[r23774]

15 years ago- better (and hopefully correct) implementation of __based pointer
Michael Beck [Tue, 18 Nov 2008 16:13:45 +0000 (16:13 +0000)]
- better (and hopefully correct) implementation of __based pointer

[r23767]

15 years agoOne more fix for r23739: extern declarations may be incomplete.
Christoph Mallon [Tue, 18 Nov 2008 14:54:54 +0000 (14:54 +0000)]
One more fix for r23739: extern declarations may be incomplete.

[r23762]

15 years agoFix r23739 (rejecting declarations of incomplete type) for arrays with unknown size...
Christoph Mallon [Tue, 18 Nov 2008 14:47:04 +0000 (14:47 +0000)]
Fix r23739 (rejecting declarations of incomplete type) for arrays with unknown size, but with initializer.

[r23760]

15 years agoParse C++ references.
Christoph Mallon [Tue, 18 Nov 2008 14:39:59 +0000 (14:39 +0000)]
Parse C++ references.

[r23759]

15 years agoPut error for goto over VLA onto the TODO list.
Christoph Mallon [Tue, 18 Nov 2008 07:51:07 +0000 (07:51 +0000)]
Put error for goto over VLA onto the TODO list.

[r23741]

15 years agoReject variable declarations of incomplete type.
Christoph Mallon [Mon, 17 Nov 2008 18:32:07 +0000 (18:32 +0000)]
Reject variable declarations of incomplete type.

[r23739]

15 years agoDo not mangle restrict qualifiers.
Christoph Mallon [Mon, 17 Nov 2008 14:31:23 +0000 (14:31 +0000)]
Do not mangle restrict qualifiers.

[r23731]

15 years agoHandle mangling of anonymous types, which only have a typedef name.
Christoph Mallon [Mon, 17 Nov 2008 12:06:25 +0000 (12:06 +0000)]
Handle mangling of anonymous types, which only have a typedef name.

[r23726]

15 years agoFix off-by-one error in error message.
Christoph Mallon [Mon, 17 Nov 2008 11:04:20 +0000 (11:04 +0000)]
Fix off-by-one error in error message.

[r23725]

15 years agoRemove pointless assert().
Christoph Mallon [Mon, 17 Nov 2008 11:01:55 +0000 (11:01 +0000)]
Remove pointless assert().

[r23724]

15 years agoIndentation and stuff.
Christoph Mallon [Mon, 17 Nov 2008 10:59:41 +0000 (10:59 +0000)]
Indentation and stuff.

[r23723]

15 years agoMerge semantic_compound() into parse_compound_declarators().
Christoph Mallon [Mon, 17 Nov 2008 10:53:01 +0000 (10:53 +0000)]
Merge semantic_compound() into parse_compound_declarators().

[r23722]

15 years agoCompound types are incomplete until the }.
Christoph Mallon [Mon, 17 Nov 2008 10:34:26 +0000 (10:34 +0000)]
Compound types are incomplete until the }.

[r23721]

15 years agos/puts("")/putchar(n)/.
Christoph Mallon [Mon, 17 Nov 2008 10:22:34 +0000 (10:22 +0000)]
s/puts("")/putchar(n)/.

[r23720]

15 years agoImprove r23717, because it broke non-WIN32 (cpp is unhappy about -DNAME= and DEFN...
Christoph Mallon [Mon, 17 Nov 2008 09:08:27 +0000 (09:08 +0000)]
Improve r23717, because it broke non-WIN32 (cpp is unhappy about -DNAME= and DEFN as separate parameters) and further there are more add_flag() which may contain spaces.

[r23719]

15 years ago- parsing of __based implemented (more semantic in assignment might be needed)
Michael Beck [Mon, 17 Nov 2008 01:14:41 +0000 (01:14 +0000)]
- parsing of __based implemented (more semantic in assignment might be needed)

[r23718]

15 years ago- windows does not handle \_, use quotes
Michael Beck [Mon, 17 Nov 2008 00:52:48 +0000 (00:52 +0000)]
- windows does not handle \_, use quotes
- fixed if( style

[r23717]

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]