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]
Christoph Mallon [Sat, 15 Nov 2008 10:59:20 +0000 (10:59 +0000)]
The calling convention is orthogonal to the linkage specification.
[r23678]
Christoph Mallon [Sat, 15 Nov 2008 08:48:32 +0000 (08:48 +0000)]
static.
[r23676]
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]
Michael Beck [Fri, 14 Nov 2008 23:29:39 +0000 (23:29 +0000)]
- don't use obstack_printf() when not necessary
[r23674]
Michael Beck [Fri, 14 Nov 2008 23:11:49 +0000 (23:11 +0000)]
- fixed a lot of 'enum type mixed with ...' warnings
[r23673]
Michael Beck [Fri, 14 Nov 2008 23:11:00 +0000 (23:11 +0000)]
- fixed warning
[r23672]
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]
Matthias Braun [Fri, 14 Nov 2008 15:55:44 +0000 (15:55 +0000)]
fix string initializer when implicitely going down arrays
[r23663]
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]
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]
Matthias Braun [Fri, 14 Nov 2008 12:55:25 +0000 (12:55 +0000)]
delete temp files
[r23653]
Matthias Braun [Fri, 14 Nov 2008 12:40:15 +0000 (12:40 +0000)]
more cleanup
[r23651]
Matthias Braun [Fri, 14 Nov 2008 12:37:57 +0000 (12:37 +0000)]
use ushort wchar_t on mingw
[r23650]
Matthias Braun [Fri, 14 Nov 2008 12:36:23 +0000 (12:36 +0000)]
missing break
[r23649]
Matthias Braun [Fri, 14 Nov 2008 12:35:45 +0000 (12:35 +0000)]
most of the options are handled in main.c now
[r23648]
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]
Matthias Braun [Thu, 13 Nov 2008 14:02:44 +0000 (14:02 +0000)]
fix local labels
[r23632]
Matthias Braun [Thu, 13 Nov 2008 13:36:42 +0000 (13:36 +0000)]
pass correct modes to 64bit lowerer
[r23626]
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]
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]
Matthias Braun [Thu, 13 Nov 2008 10:26:42 +0000 (10:26 +0000)]
fix assert
[r23612]
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]
Christoph Mallon [Mon, 10 Nov 2008 09:38:26 +0000 (09:38 +0000)]
In C++ the result type of !, <, <=, >=, >, == and != is bool.
[r23539]
Christoph Mallon [Mon, 10 Nov 2008 09:23:31 +0000 (09:23 +0000)]
Parse C++ bool, false and true.
[r23538]
Matthias Braun [Fri, 7 Nov 2008 08:18:40 +0000 (08:18 +0000)]
more work towards expansion of macros with arguments
[r23505]
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]
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]
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]
Christoph Mallon [Tue, 4 Nov 2008 14:37:49 +0000 (14:37 +0000)]
use expect() to find the ] of an array access expression.
[r23432]
Christoph Mallon [Tue, 4 Nov 2008 14:34:01 +0000 (14:34 +0000)]
Set the source position in allocate_expression_zero().
[r23431]
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]
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]
Matthias Braun [Tue, 4 Nov 2008 10:03:34 +0000 (10:03 +0000)]
modifier to print preprocessing token
[r23424]
Matthias Braun [Tue, 4 Nov 2008 10:03:12 +0000 (10:03 +0000)]
print tokens without surrounding ''
[r23423]
Matthias Braun [Tue, 4 Nov 2008 09:43:14 +0000 (09:43 +0000)]
more tricky preprocessor problems
[r23421]
Matthias Braun [Mon, 3 Nov 2008 16:25:11 +0000 (16:25 +0000)]
if(n)def implementation
[r23414]
Matthias Braun [Mon, 3 Nov 2008 01:22:50 +0000 (01:22 +0000)]
implemented #include
[r23399]
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]
Matthias Braun [Sun, 2 Nov 2008 16:36:26 +0000 (16:36 +0000)]
EXPR_INVALID gets constructed in case of errors
[r23392]
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]
Matthias Braun [Sun, 2 Nov 2008 14:41:31 +0000 (14:41 +0000)]
set has_implicit_size flag
[r23385]
Matthias Braun [Sun, 2 Nov 2008 11:44:30 +0000 (11:44 +0000)]
TODO update
[r23382]
Matthias Braun [Sat, 1 Nov 2008 19:18:58 +0000 (19:18 +0000)]
Move more C tests
[r23372]
Matthias Braun [Sat, 1 Nov 2008 19:18:31 +0000 (19:18 +0000)]
move C frontend tests
[r23371]
Matthias Braun [Sat, 1 Nov 2008 17:39:06 +0000 (17:39 +0000)]
add main, fix warnings not intended
[r23357]
Matthias Braun [Sat, 1 Nov 2008 17:32:22 +0000 (17:32 +0000)]
this should not be here
[r23356]
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]
Matthias Braun [Sat, 1 Nov 2008 17:12:31 +0000 (17:12 +0000)]
local labels should be fixed
[r23354]
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]
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]
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]
Matthias Braun [Sat, 1 Nov 2008 16:55:14 +0000 (16:55 +0000)]
fix warning
[r23349]
Matthias Braun [Sat, 1 Nov 2008 15:45:01 +0000 (15:45 +0000)]
this is a gnu extension I guess
[r23348]
Matthias Braun [Sat, 1 Nov 2008 15:17:47 +0000 (15:17 +0000)]
test implicit type for k&r functions
[r23347]
Michael Beck [Tue, 28 Oct 2008 15:54:18 +0000 (15:54 +0000)]
- add option -end-melt
[r23282]
Michael Beck [Mon, 27 Oct 2008 18:03:02 +0000 (18:03 +0000)]
- further fixed r23189
[r23242]
Christoph Mallon [Mon, 27 Oct 2008 15:44:09 +0000 (15:44 +0000)]
Fix anchor token underflow while parsing for-statements.
[r23236]
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]
Christoph Mallon [Mon, 27 Oct 2008 12:17:13 +0000 (12:17 +0000)]
Add the C++ :: token.
[r23226]
Christoph Mallon [Mon, 27 Oct 2008 11:40:23 +0000 (11:40 +0000)]
Parse and check semantic of delete expressions.
[r23225]
Christoph Mallon [Mon, 27 Oct 2008 11:08:09 +0000 (11:08 +0000)]
C++ banned implicit int.
[r23224]
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]
Christoph Mallon [Mon, 27 Oct 2008 10:50:48 +0000 (10:50 +0000)]
C++ has not "tentative definitions".
[r23222]
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]
Christoph Mallon [Mon, 27 Oct 2008 10:32:09 +0000 (10:32 +0000)]
Parse and check semantic of throw expressions.
[r23220]
Christoph Mallon [Mon, 27 Oct 2008 06:48:38 +0000 (06:48 +0000)]
Remove if, whose condition is never true.
[r23219]
Christoph Mallon [Sun, 26 Oct 2008 20:55:23 +0000 (20:55 +0000)]
In C++ (most) character literals are of type char.
[r23218]
Christoph Mallon [Sun, 26 Oct 2008 20:38:34 +0000 (20:38 +0000)]
Add C++ keywords.
[r23217]
Christoph Mallon [Sun, 26 Oct 2008 19:49:53 +0000 (19:49 +0000)]
First bit of C++ support: Different precedence for ?:.
[r23216]
Christoph Mallon [Sun, 26 Oct 2008 19:48:46 +0000 (19:48 +0000)]
Add support for C++ in the compiler driver.
[r23215]
Matthias Braun [Sun, 26 Oct 2008 18:44:46 +0000 (18:44 +0000)]
more tests
[r23214]
Matthias Braun [Sun, 26 Oct 2008 18:04:37 +0000 (18:04 +0000)]
slightly improve testcase
[r23213]
Christoph Mallon [Sun, 26 Oct 2008 17:54:17 +0000 (17:54 +0000)]
Consistently name the directories should_*.
[r23212]
Christoph Mallon [Sun, 26 Oct 2008 17:50:49 +0000 (17:50 +0000)]
cp_error050: sizeof a compound literal.
[r23211]
Christoph Mallon [Sun, 26 Oct 2008 17:46:08 +0000 (17:46 +0000)]
Fix parsing of expression statements, which pointlessly start with sizeof or __alignof__, and sort the case list.
[r23210]
Matthias Braun [Sun, 26 Oct 2008 12:26:06 +0000 (12:26 +0000)]
fix typo
[r23207]
Matthias Braun [Sun, 26 Oct 2008 12:23:44 +0000 (12:23 +0000)]
this was not meant to be here
[r23206]
Christoph Mallon [Sun, 26 Oct 2008 12:11:03 +0000 (12:11 +0000)]
Change -w so that warnings can be activated again later on.
[r23205]
Matthias Braun [Sun, 26 Oct 2008 12:02:46 +0000 (12:02 +0000)]
more warning testcases
[r23204]
Matthias Braun [Sun, 26 Oct 2008 10:03:16 +0000 (10:03 +0000)]
source-position doesn't make any sense for types:
- atomic, pointer, function types are used throughout the program and always
defined "on-the-fly" it's not possible to assign a correct source_position
- for struct, union and enum types we have to create a declaration_t anyway
so they can get referenced by their name. In this case we can and should
use the source_position of the declaration
[r23203]
Christoph Mallon [Sun, 26 Oct 2008 08:30:31 +0000 (08:30 +0000)]
Prefix operators need no precedence.
[r23201]
Michael Beck [Sun, 26 Oct 2008 02:04:06 +0000 (02:04 +0000)]
- crashes, but should give an error
[r23200]
Michael Beck [Sun, 26 Oct 2008 00:24:57 +0000 (00:24 +0000)]
- BugFix: gcc optimizes def_nr + 1 < 0 away, arg\!
[r23196]
Michael Beck [Sun, 26 Oct 2008 00:08:44 +0000 (00:08 +0000)]
- BugFix: generation of default case number was completely broken
[r23195]
Michael Beck [Sat, 25 Oct 2008 22:37:06 +0000 (22:37 +0000)]
- fixed r23189: the AST-printer doubles the precesion to have one free
bit for right-to-left handling
[r23194]
Christoph Mallon [Sat, 25 Oct 2008 20:06:26 +0000 (20:06 +0000)]
Unify the precedence lists of the parser and the AST printer.
[r23189]
Matthias Braun [Sat, 25 Oct 2008 19:42:22 +0000 (19:42 +0000)]
improved switch.c
[r23188]
Christoph Mallon [Sat, 25 Oct 2008 19:26:26 +0000 (19:26 +0000)]
Replace magic numbers for expression precedences by an enum. Do not unnecessarily pass the precedence to the expression parsers.
[r23184]
Matthias Braun [Sat, 25 Oct 2008 17:10:15 +0000 (17:10 +0000)]
get rid of some fields in ast_t: outer_fkt_jmp, is_outer_ref, is_parameter
[r23181]
Christoph Mallon [Sat, 25 Oct 2008 17:01:13 +0000 (17:01 +0000)]
Fix some precedence stuff for expression parsing.
[r23180]
Matthias Braun [Sat, 25 Oct 2008 14:44:06 +0000 (14:44 +0000)]
some testcases I had lying around here
[r23179]
Christoph Mallon [Fri, 24 Oct 2008 17:30:32 +0000 (17:30 +0000)]
While our semantics of _Bool are wrong, at least make it the right size (for most platforms).
[r23175]
Christoph Mallon [Fri, 24 Oct 2008 17:26:56 +0000 (17:26 +0000)]
Use make_pointer_type().
[r23174]
Matthias Braun [Thu, 23 Oct 2008 21:59:02 +0000 (21:59 +0000)]
asm_name is not used
[r23149]
Christoph Mallon [Tue, 21 Oct 2008 10:11:07 +0000 (10:11 +0000)]
skip_typeref().
[r23060]
Christoph Mallon [Tue, 21 Oct 2008 08:13:29 +0000 (08:13 +0000)]
Improve unused variable check.
[r23059]
Christoph Mallon [Tue, 21 Oct 2008 06:11:05 +0000 (06:11 +0000)]
Improve unused variable check.
[r23057]
Christoph Mallon [Tue, 21 Oct 2008 06:07:12 +0000 (06:07 +0000)]
Implement a statement walker.
[r23056]
Christoph Mallon [Mon, 20 Oct 2008 10:47:54 +0000 (10:47 +0000)]
Remove a variable, which was found by the new, shiny -Wunused-variable.
[r23027]