[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sat Sep 25 02:16:13 CEST 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/09/25 02:16:13
Modified files:
cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c
Log message:
tighten up some asserts
size and align >= 1, not just >= 0
er, no, size can be 0, for empty records
or fields of their type, so leave it alone and align >= !!size
work in progress
types/debugging for enums and typedefs
(when you say TYPE a = {b,c};
{b,c} is anonymous enum
and a is a typedef/typename for.
consider you can say:
TYPE a = {b,c};
TYPE a2 = {b,c};
it is equivalent to typedef enum {b,c} a, a2;)
not yet working, not yet enabled
don't widen return types
leave the mechanism though because
this might be where we adjust struct vs. struct*, which
is another thing configure -enable-checking complains about,
though that is specific to module initializers I think,
not all functions in general
set the alignment of bitfields 1 bit, other fields to BITS_PER_UNIT (8 bits)
part of attempted work in progress to generate decent trees
instead of obviously poor ones; aka to actually maybe finish
this backend instead of leaving it very incomplete for years
(not yet enabled)
Do a better job of skipping the prefix of module/segment names.
M_Main => "Main" instead of "ain".
Instead of always skipping 3, skip up to the first
underscore, if it is at position 0, 1, or 2.
Right? Or did I regress this somewhere since release?
layout_decl(var, 0)
=> layout_decl(var, 1)
alignment = 0 is bad, causes divide by zero with plain -g
More information about the M3commit
mailing list