Dear GCC Patches Team,
I hope this message finds you well.
I am submitting a patch for the GCC compiler's "stdbool.h" to optimize the
size of the true and false macros in the C programming language. Currently,
the size of the true and false macros is 4 bytes, whereas the _Bool
datatype is 1 byte in size. This patch proposes a change that will set the
size of the true and false macros to 1 byte, aligning them more closely
with the _Bool datatype.
The implementation is simple and should result in a minor but beneficial
optimization for memory usage in certain scenarios.
Please find the patch attached for review. The changes are made in Line 37
and 38.
I look forward to your feedback and would be happy to make any necessary
adjustments.
Best regards,
Saksham Joshi
[LinkedIn: @sakshamjoshi27]
/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/*
* ISO C Standard: 7.16 Boolean type and values
*/
#ifndef _STDBOOL_H
#define _STDBOOL_H
#ifndef __cplusplus
#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
/* bool, true and false are keywords. */
#else
#define bool_Bool
#define true(bool) 1
#define false (bool) 0
#endif
#else /* __cplusplus */
/* Supporting _Bool in C++ is a GCC extension. */
#define _Bool bool
#endif /* __cplusplus */
/* Signal that all the definitions are present. */
#define __bool_true_false_are_defined 1
#endif /* stdbool.h */