[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Sat Apr 20 19:56:41 CEST 2013


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	13/04/20 19:56:41

Modified files:
	cm3/m3-sys/m3back/src/: M3C.m3 

Log message:
	turn back on #line directives
	prepare for passing structs by value:
	VAR PassStructsByValue := FALSE;
	VAR ReturnStructsByValue := FALSE; (* tied in with frontend/target)
	make missing types in pop_struct an error now that frontend fixed
	
	structs by value cause an interesting reversal,
	my thinking is thus:
	
	NOT by value, current scheme:
	
	void Procedure(struct* uplevel)
	{
	struct
	{
	struct uplevel;
	} frame = {*uplevel};
	}
	
	by value:
	void Procedure(struct uplevel)
	{
	struct
	{
	struct* uplevel;
	} frame = {&uplevel};
	}
	
	i.e. still have to "copy some value into frame struct"
	but it changes from value to pointer
	
	though, if the struct is size of a pointer or smaller,
	we might as well copy the value
	
	also prepare for returning structs by value, though frontend
	doesn't seem setup for that




More information about the M3commit mailing list