Compare commits

..

5 Commits

Author SHA1 Message Date
ea5164e584 Make compiler-rt version match the clang version in the gitea action
All checks were successful
Validate the build / validate-build (push) Successful in 38s
2025-04-17 16:42:23 +02:00
bf3fd83b64 Let the release build error on warnings
Add -Werror to the release configuration. Also add the release build as
a dependency of the make validate rule. The idea is that builds should
not pass validation if they have warnings but it shouldn't stop debug
builds during development from compiling while work is in progress.
2025-04-17 15:18:28 +02:00
6f78d26ea1 Change the n argument of lexer_shift_buffer to size_t from int
Some checks failed
Validate the build / validate-build (push) Failing after 35s
2025-04-17 15:12:56 +02:00
1a79bf050e Remove unused ast_node_free_value
Values are all inside the ast struct and require no cleanup other than
freeing the ast struct.
2025-04-17 15:10:36 +02:00
26cb374c1d Update gitignore, add /build and remove old build artifacts 2025-04-17 15:09:29 +02:00
6 changed files with 7 additions and 13 deletions

View File

@ -16,8 +16,10 @@ jobs:
echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
# determine correct clang version and then install it
apk update
apk add --no-cache llvm19 clang19 clang19-analyzer compiler-rt valgrind
RT_VERSION=$(apk search -v compiler-rt | grep -o "compiler-rt-[0-9]*" | head -1 | grep -o "[0-9]*")
apk add --no-cache llvm${RT_VERSION} clang${RT_VERSION} clang${RT_VERSION}-analyzer compiler-rt valgrind
# Verify versions
echo "---------------------"

4
.gitignore vendored
View File

@ -1,7 +1,5 @@
*.o
*.d
/core
/oas
/oas-asan
/oas-msan
/build
/reports

View File

@ -21,7 +21,7 @@ asan:
msan:
make -rRf make/msan.mk all
validate: asan msan debug
validate: asan msan debug release
./validate.sh
analyze:

View File

@ -1,4 +1,4 @@
CFLAGS?=-Wall -Wextra -Wpedantic -O2 -std=c23 -flto -fomit-frame-pointer -DNDEBUG -D_POSIX_C_SOURCE=200809L
CFLAGS?=-Wall -Wextra -Wpedantic -Werror -O2 -std=c23 -flto -fomit-frame-pointer -DNDEBUG -D_POSIX_C_SOURCE=200809L
LDFLAGS?=-flto -s -Wl,--gc-sections
BUILD_DIR?=build/release/

View File

@ -17,10 +17,6 @@ error_t *ast_node_alloc(ast_node_t **output) {
return nullptr;
}
void ast_node_free_value(ast_node_t *node) {
// TODO: decide how value ownership will work and clean it up here
}
void ast_node_free(ast_node_t *node) {
if (node == nullptr)
return;
@ -30,8 +26,6 @@ void ast_node_free(ast_node_t *node) {
free(node->children);
}
ast_node_free_value(node);
memset(node, 0, sizeof(ast_node_t));
free(node);
}

View File

@ -136,7 +136,7 @@ error_t *lexer_open(lexer_t *lex, char *path) {
*
* @pre There must be at least n characters in the input buffer
*/
void lexer_shift_buffer(lexer_t *lex, int n) {
void lexer_shift_buffer(lexer_t *lex, size_t n) {
assert(lex->buffer_count >= n);
lex->buffer_count -= n;
memmove(lex->buffer, lex->buffer + n, lex->buffer_count);