Add pointer support and improve debug and valgrind in Makefile

This commit is contained in:
gbaconni
2022-04-15 17:20:15 +02:00
parent af87168372
commit 175a774e49
6 changed files with 82 additions and 27 deletions

View File

@@ -6,7 +6,7 @@
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
# Updated: 2022/04/14 23:54:03 by gbaconni ### lausanne.ch #
# Updated: 2022/04/15 17:19:30 by gbaconni ### lausanne.ch #
# #
# **************************************************************************** #
#
@@ -52,12 +52,20 @@ HDR = libftprintf.h
CC = gcc
CFLAGS = -Wall -Wextra -Werror
ifeq ($(FAST), 1)
CFLAGS += -v -pipe -O3 -ffast-math -fomit-frame-pointer -funroll-loops
#CFLAGS += -v -pipe -Ofast -ffast-math -funroll-loops -fomit-frame-pointer
CFLAGS += -pipe -O3 -ffast-math -fomit-frame-pointer -funroll-loops
#CFLAGS += -pipe -Ofast -ffast-math -funroll-loops -fomit-frame-pointer
endif
ifeq ($(DEBUG), 1)
CFLAGS += -g -O1 -fsanitize=address -fsanitize=undefined -fsanitize=signed-integer-overflow
#CFLAGS += -v -g -O1 -fsanitize=address -fsanitize=undefined -fsanitize=signed-integer-overflow
CFLAGS += -g -O0 -fsanitize=address -fsanitize=undefined -fsanitize=signed-integer-overflow
endif
ifeq ($(LEAK), 1)
CFLAGS += -g -O0
endif
VALGRIND = valgrind
VALGRINDFLAGS = --quiet --leak-check=full --show-leak-kinds=all
ifeq ($(LEAK), 1)
PREFIX += $(VALGRIND) $(VALGRINDFLAGS)
endif
AR = ar
@@ -102,6 +110,9 @@ so: $(OBJ) $(OBJ_BONUS)
check:
@$(NORMINETTE) $(NORMINETTEFLAGS) $(HDR) $(SRC) ${SRC_BONUS} 2>&1 | grep -v '\.[ch]: OK!' || true
leak:
@$(MAKE) re LEAK=1
debug:
@$(MAKE) re DEBUG=1

View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/20 11:43:52 by gbaconni #+# #+# */
/* Updated: 2022/04/15 00:25:52 by gbaconni ### lausanne.ch */
/* Updated: 2022/04/15 16:37:06 by gbaconni ### lausanne.ch */
/* */
/* ************************************************************************** */
@@ -21,7 +21,7 @@ int ft_vprintf(char const *format, va_list ap)
{
if (*format == '%')
{
if (*format++ == '%')
if (*++format == '%')
ret += ft_vprintf_percent(format, ap);
else if (*format == 'c')
ret += ft_vprintf_char(format, ap);

View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/20 11:56:16 by gbaconni #+# #+# */
/* Updated: 2022/04/13 08:00:14 by gbaconni ### lausanne.ch */
/* Updated: 2022/04/15 17:12:36 by gbaconni ### lausanne.ch */
/* */
/* ************************************************************************** */
@@ -14,7 +14,25 @@
int ft_vprintf_pointer(const char *format, va_list ap)
{
(void) ap;
int ret;
int len;
void *p;
char *s;
(void) format;
return (0);
ret = 0;
len = 0;
p = va_arg(ap, void *);
if (p == NULL)
{
len = ft_strlen(NIL);
write(1, NIL, len);
return (len);
}
s = ft_itoa_base((unsigned long) p, "0123456789ABCDEF");
len = ft_strlen(s);
write(1, s, len);
ret += len;
free(s);
return (ret);
}

View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/18 15:26:06 by gbaconni #+# #+# */
/* Updated: 2022/04/14 23:56:24 by gbaconni ### lausanne.ch */
/* Updated: 2022/04/15 16:50:38 by gbaconni ### lausanne.ch */
/* */
/* ************************************************************************** */
@@ -17,6 +17,12 @@
# include <stdarg.h>
# include <unistd.h>
# if defined (__APPLE__)
# define NIL "0x0"
# else
# define NIL "(nil)"
# endif
/* Helper */
char *ft_itoa_base(int n, char *base);