diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-11-11 18:29:09 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-11-25 21:38:11 +0100 |
| commit | 10b89d60b671642031675e839556aa63d76b634c (patch) | |
| tree | 69488673ad1228b8ec35efcaf4ae7dba5c4dee69 /gdbhelpers | |
| parent | 3d5151318d14884164d3a5cb440b926334879e5a (diff) | |
| download | sparse-dev-10b89d60b671642031675e839556aa63d76b634c.tar.gz | |
spec: get rid of all specifier MOD_XXX
Modifiers like MOD_CHAR, MOD_LONG, ... are used to keep track
of the size/rank of integers and floats. But this is problematic:
* they use 5 of the precious modifiers bits
* they're not really modifiers but the base of the primitive types
* a 'long double' has MOD_LONGLONG set
Change this by using instead the explicit notion of 'rank'.
The advanatges are:
* using only 3 bits (in struct symbol)
* free 5 modifier bits
* follow closely the definition & rules of the standard
* things like integer promotion are slightly simpler.
Note: this is somewhat experimental as I'm not yet convinced
that everything is correct (but the testsuite is OK
and gives the same result for a defconfig + allyesconfig
build of the kernel).
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'gdbhelpers')
| -rw-r--r-- | gdbhelpers | 15 |
1 files changed, 0 insertions, 15 deletions
@@ -119,21 +119,6 @@ define gdb_show_ctype if ($arg0->modifiers & MOD_UNSIGNED) printf "MOD_UNSIGNED " end - if ($arg0->modifiers & MOD_CHAR) - printf "MOD_CHAR " - end - if ($arg0->modifiers & MOD_SHORT) - printf "MOD_SHORT " - end - if ($arg0->modifiers & MOD_LONG) - printf "MOD_LONG " - end - if ($arg0->modifiers & MOD_LONGLONG) - printf "MOD_LONGLONG " - end - if ($arg0->modifiers & MOD_LONGLONGLONG) - printf "MOD_LONGLONGLONG " - end if ($arg0->modifiers & MOD_INLINE) printf "MOD_INLINE " end |
