aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
AgeCommit message (Collapse)Author
2019-09-16fix tripping llvm assertAndrew Kelley
``` Assertion `!isa<DIType>(Scope) && "shouldn't make a namespace scope for a type" ``` We've had this problem and solved it before; see #579.
2019-09-13Make single-element enum default to u0LemonBoy
* Allow comptime_int as explicit enum tag type Closes #2997
2019-09-10async function calls re-use frame buffersAndrew Kelley
See #3069
2019-09-10Don't forget to resolve the pointee typeLemonBoy
Fixes #3128
2019-09-10make the std lib support event-based I/OAndrew Kelley
also add -fstack-report
2019-09-10Force LLVM to generate byte-aligned packed unionsLemonBoy
Sometimes the frontend and LLVM would disagree on the ABI alignment of a packed union. Solve the problem by telling LLVM we're gonna manage the struct layout by ourselves. Closes #3184
2019-09-10forbid opaque types in function return typesSahnvour
2019-09-09fix a var decl in scope preventing for loop spillsAndrew Kelley
2019-09-09fix bad LLVM IR when for target expr needs to be spilledAndrew Kelley
Also reduce the size of ZigVar in memory by making the name a `const char *` rather than a `Buf`.
2019-09-07fix suspensions inside for loops generating invalid LLVM IRAndrew Kelley
closes #3076
2019-09-07properly spill expressions with async function callsAndrew Kelley
2019-09-07implement spills when expressions used across suspend pointsAndrew Kelley
closes #3077
2019-09-07fix await used in an expression generating bad LLVMAndrew Kelley
2019-09-05implement `noasync` function callsAndrew Kelley
See #3157
2019-09-05Always resolve the struct field typesLemonBoy
Packed structs used to skip the zero-sized types and trip some assertions that expected the type reference not to be null. Fixes #3143
2019-09-05stage1 enhance IR printMichael Dusan
- print fn name in pass1 - replace scalar with enum IrPass for clarity
2019-09-05Add the noinline keyword for function declarationsLemonBoy
2019-09-03emit a compile error if a test becomes asyncAndrew Kelley
See #3117
2019-09-03error message and test for alignment of variables of zero-bit typesSahnvour
2019-09-03Merge branch 'fixSegfault' of https://github.com/marler8997/zig into ↵Andrew Kelley
marler8997-fixSegfault
2019-08-31stage1 enhance IR printMichael Dusan
- pass2 now prints missing instructions in a trailing fashion - instruction struct name added to print as column 2
2019-08-31improvements to `@asyncCall`Andrew Kelley
* `await @asyncCall` generates better code. See #3065 * `@asyncCall` works with a real `@Frame(func)` in addition to a byte slice. Closes #3072 * `@asyncCall` allows passing `{}` (a void value) as the result pointer, which uses the result location inside the frame. Closes #3068 * support `await @asyncCall` on a non-async function. This is in preparation for safe recursion (#1006).
2019-08-31`@typeOf` now guarantees no runtime side effectsAndrew Kelley
related: #1627
2019-08-30support recursive async and non-async functionsAndrew Kelley
which heap allocate their own frames related: #1006
2019-08-29fix regressionsAndrew Kelley
2019-08-29await does not force async if callee is blockingAndrew Kelley
closes #3067
2019-08-29comparing against zero participates in lazy valuesAndrew Kelley
2019-08-29make `@sizeOf` lazyAndrew Kelley
2019-08-29fix not fully resolving debug info for structs causing llvm errorAndrew Kelley
2019-08-28implement lazy values for error union typesAndrew Kelley
closes #3129
2019-08-27support self-referential struct through a slice of optionalAndrew Kelley
by making optionals even more lazy closes #1805
2019-08-27better handle struct depends on itself via optional fieldAndrew Kelley
closes #1995
2019-08-27fix not properly casting align valuesAndrew Kelley
and add check for alignment specified on enum fields
2019-08-27add a TODO compile error for union field alignment syntaxAndrew Kelley
See #3125
2019-08-27implement and test struct field explicit alignmentAndrew Kelley
2019-08-26fix more compile error regressionsAndrew Kelley
2019-08-26miscellaneous fixes regarding compile errorsAndrew Kelley
2019-08-26fix regression on struct field with undefined typeAndrew Kelley
2019-08-26fix some compile error regressionsAndrew Kelley
2019-08-26fix some std lib dependency loopsAndrew Kelley
2019-08-26fix dependency loop errors with zig buildAndrew Kelley
2019-08-26make `@alignOf` lazily evaluate the target typeAndrew Kelley
this case works now: ```zig const Foo = struct { field: Bar(@alignOf(*Foo)), }; fn Bar(comptime alignment: u29) type { return struct { field: *align(alignment) Foo, }; } ```
2019-08-25fix resolution detection of pointer typesAndrew Kelley
2019-08-25behavior tests passingAndrew Kelley
2019-08-25make the zero-bit-ness of pointers lazyAndrew Kelley
this case works now: ```zig const Foo = struct { field: @typeOf(func).ReturnType, }; fn func(self: *Foo) void {} ```
2019-08-25fix behavior test regressions with unionsAndrew Kelley
2019-08-25hook up unions with lazy valuesAndrew Kelley
this case works now: ```zig const Expr = union(enum) { Literal: u8, Question: *Expr, }; ```
2019-08-24Fix issue 3058: zig build segfaultJonathan Marler
2019-08-23add lazy value support for optional typesAndrew Kelley
this case works now: ```zig const Node = struct { node: ?*Node, }; ```
2019-08-23fix regression with simple pointer to selfAndrew Kelley