Skip to content
Snippets Groups Projects
Commit c4637cbe authored by Gaius Mulley's avatar Gaius Mulley
Browse files

PR modula2/110174 Bugfixes to M2GenGCC.mod:CodeInline preventing an ICE


This patch calls skip_const_decl before chaining parameter values and
ensures that all strings passed to build_stmt (..., ASM_EXPR, ...) are
nul terminated.  It also improves the accuracy of locations in
function calls and asm statements.

gcc/m2/

	PR modula2/110174
	* gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
	skip_const_decl before chaining the parameter value.
	Use PromoteToCString to ensure the string is nul terminated.
	(CodeInline): Remove all parameters and replace with quad.
	Use GetQuadOtok to get operand token numbers.
	Remove call to DeclareConstant and replace it with PromoteToCString.
	* gm2-compiler/M2Quads.def (BuildInline): Rename into ...
	(BuildAsm): ... this.
	* gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
	(BuildAsm): ... this.
	(BuildAsmElement): Add debugging.
	* gm2-compiler/P1Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P2Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P3Build.bnf: Remove import of BuildInline and
	import BuildAsm.
	* gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
	* gm2-libs-iso/SysClock.mod (foo): Remove.
	* gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
	Rename variable t to src.
	* m2pp.cc (pf): Correct block comment.
	(pe): Correct block comment.
	(m2pp_asm_expr): New function.
	(m2pp_statement): Call m2pp_asm_expr.

gcc/testsuite/

	PR modula2/110174
	* gm2/pim/pass/program2.mod: Remove import of BuildInline.
	* gm2/extensions/asm/fail/extensions-asm-fail.exp: New test.
	* gm2/extensions/asm/fail/stressreturn.mod: New test.
	* gm2/extensions/asm/pass/extensions-asm-pass.exp: New test.
	* gm2/extensions/asm/pass/fooasm.mod: New test.

Signed-off-by: default avatarGaius Mulley <gaiusmod2@gmail.com>
parent 87d4356c
No related branches found
No related tags found
Loading
Showing
with 302 additions and 124 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment