<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cproc.git, branch defer</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.vlhl.dev/navi/cproc.git/atom?h=defer</id>
<link rel='self' href='https://git.vlhl.dev/navi/cproc.git/atom?h=defer'/>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/'/>
<updated>2024-11-06T11:17:01+00:00</updated>
<entry>
<title>cproc: Implement defer statement.</title>
<updated>2024-11-06T11:17:01+00:00</updated>
<author>
<name>Anna (navi) Figueiredo Gomes</name>
<email>navi@vlhl.dev</email>
</author>
<published>2024-11-06T01:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=3e51be9d94e561549281e386ce1b7554018ef4dd'/>
<id>urn:sha1:3e51be9d94e561549281e386ce1b7554018ef4dd</id>
<content type='text'>
implemented by keeping a list of deferred blocks in a function, and
emitting them before scope exits (return, lbracket, break, continue)

TODO: error checking, the compiler should error should a compile time
jump (goto) would go over a defer statement.
</content>
</entry>
<entry>
<title>Store enum constant value in struct decl</title>
<updated>2024-04-27T22:34:27+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T22:06:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=f66a661359a39e10af01508ad02429517b8460e3'/>
<id>urn:sha1:f66a661359a39e10af01508ad02429517b8460e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement variable length arrays</title>
<updated>2024-04-27T22:34:03+00:00</updated>
<author>
<name>Nihal Jere</name>
<email>nihal@nihaljere.xyz</email>
</author>
<published>2024-04-27T21:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=4f206ac1ea1b20400fa242f2f3be86237c4ba3bf'/>
<id>urn:sha1:4f206ac1ea1b20400fa242f2f3be86237c4ba3bf</id>
<content type='text'>
Variably modified types are required for C23.

Since QBE doesn't currently support saving and restoring the stack
pointer, a current limitation is that we can't reclaim stack space
from VLAs that go out of scope. This is potentially problematic for
VLAs appearing in a loop, but this case is uncommon enough that it
is silently ignored for now.

Implements: https://todo.sr.ht/~mcf/cproc/1
References: https://todo.sr.ht/~mcf/cproc/88
Co-authored-by: Michael Forney &lt;mforney@mforney.org&gt;
</content>
</entry>
<entry>
<title>qbe: Add extra size for strict alignment with QBE instruction</title>
<updated>2024-04-27T21:29:02+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T21:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=487079af3d6f39b379f52f7e0ea6edec63587e5b'/>
<id>urn:sha1:487079af3d6f39b379f52f7e0ea6edec63587e5b</id>
<content type='text'>
With upcoming VLA support, the size might not be constant.
</content>
</entry>
<entry>
<title>qbe: Temporarily set func-&gt;end = func-&gt;start in funcalloc</title>
<updated>2024-04-27T20:50:19+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T20:49:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=52c17530f2e2dbc61a3bf1d4950c8b9eaeab86de'/>
<id>urn:sha1:52c17530f2e2dbc61a3bf1d4950c8b9eaeab86de</id>
<content type='text'>
This way way can just use funcinst.
</content>
</entry>
<entry>
<title>Use hlt to implement noreturn</title>
<updated>2024-04-27T09:48:40+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T01:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=186b7095eeb84bec527d6d7ac9320776a8b78734'/>
<id>urn:sha1:186b7095eeb84bec527d6d7ac9320776a8b78734</id>
<content type='text'>
</content>
</entry>
<entry>
<title>expr: Collapse *&amp; when parsing</title>
<updated>2024-04-27T09:48:40+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T01:09:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=2b6c69c6b7f9dd4b30f00f3b1d9552c5b1c6077e'/>
<id>urn:sha1:2b6c69c6b7f9dd4b30f00f3b1d9552c5b1c6077e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>qbe: Use expression type when loading</title>
<updated>2024-04-27T08:12:22+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T08:11:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=85dd122f81322a6de30e547ada17cf8ccf4869fd'/>
<id>urn:sha1:85dd122f81322a6de30e547ada17cf8ccf4869fd</id>
<content type='text'>
If we are loading the first element of an array, or first member
of a structure, the expression type may be different from the object
type.
</content>
</entry>
<entry>
<title>decl: Move isnoreturn to struct decl</title>
<updated>2024-04-27T01:07:36+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-27T01:07:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=54abcd563ddb7012a7eb19dc1397570f4b6d58a5'/>
<id>urn:sha1:54abcd563ddb7012a7eb19dc1397570f4b6d58a5</id>
<content type='text'>
It is a property of the declaration, not the type.
</content>
</entry>
<entry>
<title>configure: Set DEFAULT_DYNAMIC_LINKER for riscv64-linux-gnu</title>
<updated>2024-04-23T18:13:13+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2024-04-23T18:13:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/cproc.git/commit/?id=ccb1421a28d5a76c7c115af2bb8927385f0ee54b'/>
<id>urn:sha1:ccb1421a28d5a76c7c115af2bb8927385f0ee54b</id>
<content type='text'>
</content>
</entry>
</feed>
