From: Axy Date: Wed, 6 May 2026 16:37:33 +0000 (+0200) Subject: Test for inline in header X-Git-Url: https://git.uwuaxy.net/flexible_layout.mp4?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=axy%2Fft%2Fc-cera.git Test for inline in header --- diff --git a/Makefile b/Makefile index 1631561..b8aa594 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ build-watch: watch -c -n 1 make a.out: test.c ${NAME} ${THIS} - ${CC} ${CFLAGS} test.c ccera.a + ${CC} ${CFLAGS} ccera.a test.c test: a.out valgrind ./a.out diff --git a/src/ccera.h b/src/ccera.h index 7f3fc35..6c5b13d 100644 --- a/src/ccera.h +++ b/src/ccera.h @@ -6,7 +6,7 @@ /* By: agilliar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/04/29 16:08:57 by agilliar #+# #+# */ -/* Updated: 2026/05/06 02:32:20 by agilliar ### ########.fr */ +/* Updated: 2026/05/06 18:37:26 by agilliar ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,6 +40,12 @@ typedef struct s_defer struct s_defer_pair defers[MAX_DEFERS]; } t_defer; +__attribute__((__always_inline__)) +inline void *foo(void) +{ + return (__builtin_alloca(10)); +} + void defer_new(t_defer *store); void defer_delete(t_defer *store); void defer_re(t_defer *store); @@ -58,7 +64,7 @@ typedef struct s_panic_info void *catch(void (f)(void *), void *dat); void panic(void *err) - __attribute__((noreturn, nonnull(1))); + __attribute__((noreturn, nonnull(1))); bool panicking(void); typedef union u_value t_value; diff --git a/src/defer.c b/src/defer.c index 25320ba..55b8a8f 100644 --- a/src/defer.c +++ b/src/defer.c @@ -6,7 +6,7 @@ /* By: agilliar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/05/05 17:31:36 by agilliar #+# #+# */ -/* Updated: 2026/05/06 02:31:46 by agilliar ### ########.fr */ +/* Updated: 2026/05/06 18:37:20 by agilliar ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/test.c b/test.c index ff6d963..1cc25a9 100644 --- a/test.c +++ b/test.c @@ -6,7 +6,7 @@ /* By: agilliar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/04/30 17:19:58 by agilliar #+# #+# */ -/* Updated: 2026/05/06 02:32:34 by agilliar ### ########.fr */ +/* Updated: 2026/05/06 17:58:12 by agilliar ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ void main2(void *s) t_value arg = value_bytes_new(strlen(s) + 1); defer(value_destroy, &arg); - //panic("A"); + panic("A"); t_value state = value_list_new(0); defer(value_destroy, &state); //panic("B"); @@ -40,12 +40,16 @@ void main2(void *s) defer(value_destroy, &expr); //panic("E"); t_value val = value_copy(expr); - defer(value_destroy, &val); + errdefer(value_destroy, &val); //panic("F"); } int main(void) { + char *b = foo(); + b[0] = 'a'; + b[1] = '\0'; + printf("%s\n", b); if (char *err = catch(main2, "Hello cera!")) { printf("%s\n", err);