Commit graph

2636 commits

Author SHA1 Message Date
Wolfgang Bumiller
ba781c53ef now a bare 'return;' is not required anymore if return has been assigned anywhere 2013-05-29 17:08:03 +02:00
Wolfgang Bumiller
a76702cb36 make sure missing return values still warn 2013-05-29 17:01:26 +02:00
Wolfgang Bumiller
5aba29006b return assignment factorial test 2013-05-29 16:58:18 +02:00
Wolfgang Bumiller
9167de1631 fixing that comment... 2013-05-29 16:56:39 +02:00
Wolfgang Bumiller
afdc0c9dc8 assignable return value now lives in ast_function, as globals can get overwritten randomly; removed parser_find_retval; updated parse_return 2013-05-29 16:51:59 +02:00
Dale Weiler
db6ca6c5f8 Make static 2013-05-29 11:32:42 +00:00
Dale Weiler
fd5506b376 Update test template. 2013-05-29 11:30:26 +00:00
Dale Weiler
1b71caa1fe Update man page 2013-05-29 11:29:52 +00:00
Dale Weiler
6d6a2efada Experimental support for implicit return assignments. This closes #107. To enable return assignment support use -freturn-assignments. This allows you to do the following in QC code. T name() { return = expr_eval_T; return; /* returns expr_eval_T */ }. It allows for concise code and to rid locals in functions. It also saves a tremendous amount of space since only types of certian globals need to be allocated for returns. 2013-05-29 11:13:42 +00:00
Dale Weiler
2923b718e1 Merge branch 'union-replacement' into cooking
Conflicts:
	ast.c
2013-05-29 03:43:49 +00:00
Dale Weiler
e3f4ae3038 Add back that splint flag 2013-05-29 03:39:38 +00:00
Dale Weiler
d45956f55e Fix that memory leak that I spent hours trying to find months ago and didn't succeed at. 2013-05-29 03:35:51 +00:00
Dale Weiler
f892b32335 Major export cleanup. Anything that was exported but wasn't used outside where it was implemented has been turned into static, and their exports have been removed. This actually makes the compiler compile slightly faster. 2013-05-29 03:29:04 +00:00
Dale Weiler
df8b486c98 Prevent negitive numbers from being used as the left operand of shift operator. 2013-05-29 02:37:45 +00:00
Dale Weiler
e02ebfe486 Result of shift operation on signed integers is bad. 2013-05-29 02:24:12 +00:00
Dale Weiler
f281de7a3c Cleanups and fixes 2013-05-29 02:16:50 +00:00
Wolfgang Bumiller
d70b571769 killing the union types 2013-05-11 22:34:01 +02:00
Wolfgang Bumiller
ef6e2bd583 first step to getting rid of those unions we don't use anyway 2013-05-11 22:05:30 +02:00
Wolfgang Bumiller
a0fa90ddd5 less confusing 2013-05-07 20:35:20 +02:00
Wolfgang Bumiller
802005f571 be more strict here 2013-05-07 20:13:19 +02:00
Wolfgang Bumiller
4d0a5af475 removing this dead code_init call 2013-05-07 19:59:06 +02:00
Wolfgang Bumiller
c5225b2fa1 fixing a few leaks - code_write doesn't delete the code object anymore, code_cleanup has to be called 2013-05-07 19:56:41 +02:00
Wolfgang Bumiller
8c8ae71d65 changing a few ast_delete to ast_unref in places where the to-be-deleted maybe coming from some other place 2013-05-07 19:39:10 +02:00
Wolfgang Bumiller
3e7cd8a98b Merge pull request #111 from matthiaskrgr/cooking_stuff
.gitignore: add binarys
2013-05-05 04:12:14 -07:00
Matthias Krüger
9823b294df .gitignore: add binarys 2013-05-05 12:53:58 +02:00
Dale Weiler
c07c78c666 Escape strings in executor for -printdefs 2013-05-02 19:18:59 +00:00
Dale Weiler
79a5ed0482 Implemented support for having codegen (and lno files) be wrote out to memory, this essentially allows us to embed the compiler in applications now. 2013-04-28 04:29:20 +00:00
Dale Weiler
721b581376 Fix deps (remove duplicates with clever make tricks) 2013-04-28 03:50:22 +00:00
Dale Weiler
3d115760a0 Merge branch 'cooking' of github.com:graphitemaster/gmqcc into cooking 2013-04-28 03:42:04 +00:00
Dale Weiler
a8e2a47da8 Less general name for PAK utility, added install targets for PAK utility, added manpag for PAK utility, this closes #108 2013-04-28 03:41:03 +00:00
Wolfgang Bumiller
f6792c3a05 Merge branch 'master' into cooking 2013-04-27 19:05:06 +02:00
Wolfgang Bumiller
bc4749d95a Merge pull request #109 from matthiaskrgr/PKGBUILD_master
PKGBUILD: archlinux: fix build by applying a patch (4c4aa5534c) on 0.2.9 package.
Accepting this with a patch in order for it to keep the 0.2.9 version info.
2013-04-27 10:04:43 -07:00
Matthias Krüger
90eed12e97 PKGBUILD: archlinux: fix build by applying a patch (4c4aa5534c) on 0.2.9 package. 2013-04-27 18:45:26 +02:00
Wolfgang Bumiller
2058ce69a4 Merge branch 'master' into cooking 2013-04-27 17:52:54 +02:00
Wolfgang Bumiller
4c4aa5534c dup is marked as warn-unused-result 2013-04-27 17:51:51 +02:00
Dale Weiler
dc6a7436ee Expression has undefined behavior (left operand modifies code->globals->used, used by right operand): (code->globals)[(((vector_t*)((void *)code->globals)) - 1)->used++] = (code_genstring(code, global->constval.vstring)) Code has unspecified behavior. Order of evaluation of function parameters or subexpressions is not defined, so if a value is used and modified in different places not separated by a sequence point constraining evaluation order, then the result of the expression is unspecified. 2013-04-27 15:20:01 +00:00
Wolfgang Bumiller
35120caf80 debian Makefile had the same flaw as archlinux/this... fixing 2013-04-27 17:00:27 +02:00
Wolfgang Bumiller
9ace0811ce Merge branch 'master' into cooking 2013-04-27 16:55:28 +02:00
Wolfgang Bumiller
d4b0e1f588 updating archbsd and archlinux release/PKGBUILD files 2013-04-27 16:54:53 +02:00
Wolfgang Bumiller
18cf3641b1 Merge branch 'master' into cooking 2013-04-27 16:33:55 +02:00
Wolfgang Bumiller
01ead27dd9 Update CHANGES file 2013-04-27 16:33:47 +02:00
Wolfgang Bumiller
b8e536d409 Starting point of 0.3.0 2013-04-27 16:30:35 +02:00
Wolfgang Bumiller
219508e478 this should be tagged 0.2.9 2013-04-27 16:30:03 +02:00
Wolfgang Bumiller
75ceab8f51 fix distro/ Makefiles 2013-04-26 17:56:08 +02:00
Wolfgang Bumiller
5007fd7f71 don't overwrite ldflags/libs env vars 2013-04-26 17:44:44 +02:00
Dale Weiler
50ff9e4fd0 Fix OSX compiles 2013-04-26 15:43:13 +00:00
Wolfgang Bumiller
7e0d6bdd87 don't overwrite ldflags/libs env vars 2013-04-26 17:33:56 +02:00
Wolfgang Bumiller
9f8bee4bf1 ast_value now has an initializer list array, still unused but it's there for later 2013-04-26 10:47:55 +02:00
Wolfgang Bumiller
b3e9ef3ad9 an = before an { is also always required when the declared variable is not a function; adding because of planned array initializers 2013-04-26 10:31:38 +02:00
Dale Weiler
1077eb2061 Add expressions for builtins test 2013-04-25 17:39:05 +00:00