diff options
| author | Mattias Andrée <maandree@operamail.com> | 2015-09-02 06:50:54 +0200 | 
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2015-09-02 06:55:44 +0200 | 
| commit | 96f057488e31750a83b7e3a8cdd86effdce67fe0 (patch) | |
| tree | 3e816a830761f1ed969b87389c264421d6b08d43 /gen | |
| parent | assert shall flush all streams (diff) | |
| download | slibc-96f057488e31750a83b7e3a8cdd86effdce67fe0.tar.gz slibc-96f057488e31750a83b7e3a8cdd86effdce67fe0.tar.bz2 slibc-96f057488e31750a83b7e3a8cdd86effdce67fe0.tar.xz | |
automate some parts of intconf
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'gen')
| -rw-r--r-- | gen/bits/intconf.c | 38 | ||||
| -rw-r--r-- | gen/bits/intconf.h | 49 | 
2 files changed, 87 insertions, 0 deletions
| diff --git a/gen/bits/intconf.c b/gen/bits/intconf.c new file mode 100644 index 0000000..b5d05be --- /dev/null +++ b/gen/bits/intconf.c @@ -0,0 +1,38 @@ +/** + * slibc — Yet another C library + * Copyright © 2015  Mattias Andrée (maandree@member.fsf.org) + *  + * This program 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 of the License, or + * (at your option) any later version. + *  + * This program 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. + *  + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#include <stdio.h> + + + +int main(void) +{ +  printf("CHAR_BIT %zu\n",      8 * sizeof(char)); +  printf("SHORT_BIT %zu\n",     8 * sizeof(short int)); +  printf("INT_BIT %zu\n",       8 * sizeof(int)); +  printf("LONG_BIT %zu\n",      8 * sizeof(long int)); +  printf("LONG_LONG_BIT %zu\n", 8 * sizeof(long long int)); +   +  printf("INT%zu %s\n", 8 * sizeof(char), "char"); +  printf("INT%zu %s\n", 8 * sizeof(short int), "short int"); +  printf("INT%zu %s\n", 8 * sizeof(int), "int"); +  printf("INT%zu %s\n", 8 * sizeof(long int), "long int"); +  printf("INT%zu %s\n", 8 * sizeof(long long int), "long long int"); +   +  return 0; +} + diff --git a/gen/bits/intconf.h b/gen/bits/intconf.h new file mode 100644 index 0000000..84989e9 --- /dev/null +++ b/gen/bits/intconf.h @@ -0,0 +1,49 @@ +/** + * slibc — Yet another C library + * Copyright © 2015  Mattias Andrée (maandree@member.fsf.org) + *  + * This program 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 of the License, or + * (at your option) any later version. + *  + * This program 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. + *  + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#ifndef _BITS_INTCONF_H +#define _BITS_INTCONF_H +//>set -e +//>FAST8=8; FAST16=64; FAST32=64; FAST64=64 + +#define __MAX_TO_MIN(max)  (-(max) - 1) +#define __CHAR_BIT         //(bin/gen/bits/intconf | grep ^CHAR_BIT      | sed "s/^[^ ]* //") +#define __SHORT_BIT        //(bin/gen/bits/intconf | grep ^SHORT_BIT     | sed "s/^[^ ]* //") +#define __INT_BIT          //(bin/gen/bits/intconf | grep ^INT_BIT       | sed "s/^[^ ]* //") +#define __LONG_BIT         //(bin/gen/bits/intconf | grep ^LONG_BIT      | sed "s/^[^ ]* //") +#define __LONG_LONG_BIT    //(bin/gen/bits/intconf | grep ^LONG_LONG_BIT | sed "s/^[^ ]* //") +#define __INT8             //(bin/gen/bits/intconf | grep ^INT8          | sed "s/^[^ ]* //" | sed 1q) +#define __INT16            //(bin/gen/bits/intconf | grep ^INT16         | sed "s/^[^ ]* //" | sed 1q) +#define __INT32            //(bin/gen/bits/intconf | grep ^INT32         | sed "s/^[^ ]* //" | sed 1q) +#define __INT64            //(bin/gen/bits/intconf | grep ^INT64         | sed "s/^[^ ]* //" | sed 1q) +#define __INT_FAST8        __INT//{FAST8} +#define __INT_FAST16       __INT//{FAST16} +#define __INT_FAST32       __INT//{FAST32} +#define __INT_FAST64       __INT//{FAST64} +#define __INT_FAST8_MAX    INT//{FAST8}_MAX +#define __INT_FAST16_MAX   INT//{FAST16}_MAX +#define __INT_FAST32_MAX   INT//{FAST32}_MAX +#define __INT_FAST64_MAX   INT//{FAST64}_MAX +#define __UINT_FAST8_MAX   UINT//{FAST8}_MAX +#define __UINT_FAST16_MAX  UINT//{FAST16}_MAX +#define __UINT_FAST32_MAX  UINT//{FAST32}_MAX +#define __UINT_FAST64_MAX  UINT//{FAST64}_MAX + + + +#endif + | 
