Andrew Kelley
7d0de54ad4
stage2: fix return pointer result locations
...
* Introduce `ret_load` ZIR instruction which does return semantics
based on a corresponding `ret_ptr` instruction. If the return type of
the function has storage for the return type, it simply returns.
However if the return type of the function is by-value, it loads the
return value from the `ret_ptr` allocation and returns that.
* AstGen: improve `finishThenElseBlock` to not emit break instructions
after a return instruction in the same block.
* Sema: `ret_ptr` instruction works correctly in comptime contexts.
Same with `alloc_mut`.
The test case with a recursive inline function having an implicitly
comptime return value now has a runtime return value because of the fact
that it calls a function in a non-comptime context.
2021-08-06 19:53:04 -07:00
..
2021-07-15 20:56:24 -04:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-08-05 16:37:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-14 00:16:40 +03:00
2021-05-08 14:45:21 -07:00
2021-08-01 12:36:04 -07:00
2021-06-05 22:08:36 -04:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-10 08:33:42 +03:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-07-13 10:16:57 +03:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-08-06 16:24:39 -07:00
2021-08-06 19:53:04 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-07-25 22:43:52 -04:00
2021-07-26 20:41:00 -04:00
2021-04-29 15:54:04 -07:00
2021-08-05 16:37:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-07-25 20:35:55 -04:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-07-26 20:05:48 -04:00
2021-06-09 23:54:23 -04:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-07-08 14:33:01 -04:00
2021-05-08 14:45:21 -07:00
2021-08-06 09:10:50 +03:00
2021-08-06 09:10:50 +03:00
2021-07-06 12:42:18 +03:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:04 -07:00
2021-07-28 18:17:11 -04:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-27 12:26:29 +03:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-23 09:52:09 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-08-01 23:27:38 -07:00