aboutsummaryrefslogtreecommitdiff
path: root/src/parseh.cpp
AgeCommit message (Collapse)Author
2017-08-29introduce align keywordAndrew Kelley
* remove `@setGlobalAlign` * add align keyword for setting alignment on functions and variables. * loads and stores use alignment from pointer * memcpy, memset use alignment from pointer * add syntax for pointer alignment * slices can have volatile * add u2, i2 primitives * ignore preferred align and use abi align everywhere * back to only having alignOf builtin. preferredAlignOf is too tricky to be useful. See #432. Partial revert of e726925e802eddab53cbfd9aacbc5eefe95c356f. See #37
2017-08-28Merge branch 'embed-lld'Andrew Kelley
Zig now depends on LLVM 5.0.0. For the latest version that supports LLVM 4.0.1, use 2a49c876be76dc98996a3251310728ad32b22363. Unfortunately we had to embed LLD into Zig due to some MACH-O related LLD bugs. One of them is already upstream and another is awaiting feedback on the llvm-dev mailing list. You can use cmake option -DZIG_FORCE_EXTERNAL_LLD=ON to still use external LLD if you want to live with the MACH-O bugs or if your system LLD is patched. Closes #273
2017-08-26fix wrong switch target type with enum from .h fileAndrew Kelley
fixes crash when else => unreachable is missing
2017-08-26update for llvm 5.0.0rc1Andrew Kelley
2017-06-16parseh: fix not recognizing integer suffixes on hex numbersAndrew Kelley
2017-06-14progress toward windows hello world workingAndrew Kelley
2017-05-23building with mingw for windowsAndrew Kelley
2017-05-07rename c_long_double to c_longdoubleAndrew Kelley
to be consistent with other c primitive type names
2017-04-13typedefpocalypseAndrew Kelley
closes #314
2017-03-26add stack protector safety when linking libcAndrew Kelley
* introduce zigrt file. it contains only weak symbols so that multiple instances can be merged. it contains __zig_panic so that multiple .o files can call the same panic function. * remove `@setFnVisible` builtin and add @setGlobalLinkage builtin which is more powerful * add `@panic` builtin function. * fix collision of symbols with extern prototypes and internal function names * add stack protector safety when linking against libc. To add the safety mechanism without libc requires implementing Thread Local Storage. See #276
2017-03-20fix test regression regarding shadowing namesAndrew Kelley
closes #271
2017-03-10update to llvm 4.0Andrew Kelley
2017-02-27fix inability to write to global in some casesAndrew Kelley
before, when we initialized a variable by copying the initialization value, it made the internal const value references point to a duplicate value, resulting in a phony duplicate global value being updated instead of the real on. now the behavior is as expected. thanks to hoppetosse for pointing out this bug on IRC.
2017-02-04ability to set global variable alignment and ...Andrew Kelley
..section in the initialization expression
2017-02-03exported global variables get emitted as external in LLVMAndrew Kelley
2017-02-03implement packed structsAndrew Kelley
closes #183
2017-01-13fix some stuff when llvm has assertions onAndrew Kelley
2017-01-12fix use decl regressionAndrew Kelley
2017-01-12IR: fix array concatenationAndrew Kelley
all tests passing
2017-01-12IR: implement macro for function aliasing function pointerAndrew Kelley
2017-01-11pass some parseh testsAndrew Kelley
2017-01-11pass more testsAndrew Kelley
2017-01-10partially fix parseh commandAndrew Kelley
2017-01-04IR: add unreachable code compiler errorAndrew Kelley
2016-12-28IR: pass passSliceOfEmptyStructToFn testAndrew Kelley
2016-12-26IR: pass intToPtrCast testAndrew Kelley
2016-12-25IR: support compile time global pointer reinterpretAndrew Kelley
this required moving the place we store types to ConstExprValue
2016-12-18IR: all structs anonymousAndrew Kelley
2016-12-11IR: fix implementation of parsehAndrew Kelley
libc hello world works now
2016-12-04IR: re-organize where state goes to prepare for genericsAndrew Kelley
* Rip out legacy code for generics * put scope in instruction instead of AST nodes * separate top level decl stuff from AST nodes - remove the assumption that there is a 1:1 correspondence between an output instruction and an AST node - This way we won't have to clone AST nodes for generics.
2016-12-01rewrite scope implementationAndrew Kelley
* now there are not extra unused hash tables * each variable declaration opens a new scope inside a function
2016-12-01rename BlockContext to ScopeAndrew Kelley
2016-11-18IR: correctly codegening memset and memcpyAndrew Kelley
2016-11-17remove AST cloning code and add AST render for while loopsAndrew Kelley
2016-11-04WIP moving all analysis to IRAndrew Kelley
2016-09-28remove compiler directivesAndrew Kelley
* add `setFnTest`, `setFnVisible`, `setFnStaticEval`, `setFnNoInline` builtin functions to replace previous directive functionality * add `coldcc` and `nakedcc` as keywords which can be used as part of a function prototype. * `setDebugSafety` builtin can be used to set debug safety features at a per block scope level. * closes #169
2016-09-23enums support member functionsAndrew Kelley
2016-09-19use size_t for indexesAndrew Kelley
protect against incorrect copies in debug mode
2016-09-10rename LLVMZig to ZigLLVMAndrew Kelley
2016-09-05fix gcc 5.4.0compile errorsAndrew Kelley
2016-09-04port to llvm 3.9Andrew Kelley
2016-08-07ability to have a return type of 'type'Andrew Kelley
2016-08-04new multiline string syntaxAndrew Kelley
This patch also moves a bunch of the parser code into the tokenizer. Closes #162.
2016-07-17rename NodeTypeStructDecl to NodeTypeContainerDeclAndrew Kelley
2016-05-07support generic data structuresAndrew Kelley
See #22
2016-04-22parseh: support anonymous enums and enums with initializersAndrew Kelley
2016-04-22add syntax to allow symbols to have arbitrary strings as namesAndrew Kelley
2016-04-21better parsing of C macrosAndrew Kelley
See #88
2016-03-08update to llvm 3.8.0Andrew Kelley
2016-03-01c_void is provided outside of C importsAndrew Kelley