Patch Submission: Optimize Size of true and false Macros in C

2025-05-06 Thread SAKSHAM JOSHI
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 */


Re: Patch Submission: Optimize Size of true and false Macros in C

2025-05-07 Thread SAKSHAM JOSHI
Ok. I got it. Thank you sir.

On Thu, May 8, 2025, 4:26 AM Joseph Myers  wrote:

> On Tue, 6 May 2025, SAKSHAM JOSHI wrote:
>
> > 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.
>
> If you want the macros to have type bool, use C23 mode, which is the
> default.  Older standards require the macros to expand exactly to
> particular integer constants.
>
> --
> Joseph S. Myers
> josmy...@redhat.com
>
>