changeset 282:361a449a7235

Add some extra parens in addr_of translation and fix cleaning of names in llMessage parameters
author Michael Pavone <pavone@retrodev.com>
date Mon, 21 Jul 2014 20:24:50 -0700
parents f6dfb85e80e5
children 0ec4f1b68a38
files cbackend.js
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/cbackend.js	Mon Jul 21 19:41:15 2014 -0700
+++ b/cbackend.js	Mon Jul 21 20:24:50 2014 -0700
@@ -391,7 +391,7 @@
 	case 'while:do':
 		throw new Error('while:do not allowed in expression context in llMessage block');
 	case 'addr_of':
-		return '&(' + args[0].toCLLExpr(vars) + ')';
+		return '(&(' + args[0].toCLLExpr(vars) + '))';
 	case 'sizeof':
 		return 'sizeof(' + args[0].toCTypeName() + ')';
 	case 'get':
@@ -807,10 +807,10 @@
 }
 
 function makeCPointer()
-{	
+{
 	var cptr = new cObject('cpointer');
 	cptr.addProperty('val', null, 'void *');
-	//cpointer: 
+	//cpointer:
 	//1234567890
 	cptr.addMessage('string', {
 		vars: {ret: 'string *'},
@@ -1220,6 +1220,9 @@
 		if (name[0] == ':') {
 			name = name.substr(1);
 		}
+		if (name[0] >= "0" && name[0] <= "9") {
+                name = '_tp_' + name;
+        }
 		if(name != 'self') {
 			lines.push(name + ' = va_arg(args, ' + vars[name] + ');');
 		}