forked from cosmonaut/wraith-lang
				
			codegen fixes
							parent
							
								
									459a1dd3b7
								
							
						
					
					
						commit
						876e8deb6e
					
				|  | @ -54,6 +54,8 @@ struct Program | |||
|             myStruct.myInt = 4; | ||||
|         } | ||||
| 
 | ||||
|         return myStruct.myInt; | ||||
|         Console.PrintLine("%i", myStruct.myInt); | ||||
| 
 | ||||
|         return 0; | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -509,7 +509,7 @@ static LLVMValueRef CompileFunctionCallExpression( | |||
|     if (functionCallExpression->functionCallExpression.identifier->syntaxKind == AccessExpression) | ||||
|     { | ||||
|         LLVMTypeRef typeReference = FindStructType( | ||||
|             functionCallExpression->functionCallExpression.identifier->identifier.name | ||||
|             functionCallExpression->functionCallExpression.identifier->accessExpression.accessee->identifier.name | ||||
|         ); | ||||
| 
 | ||||
|         if (typeReference != NULL) | ||||
|  | @ -708,7 +708,7 @@ static LLVMBasicBlockRef CompileIfElseStatement(LLVMBuilderRef builder, LLVMValu | |||
| 
 | ||||
|     for (i = 0; i < ifElseStatement->ifElseStatement.ifStatement->ifStatement.statementSequence->statementSequence.count; i += 1) | ||||
|     { | ||||
|         CompileStatement(builder, function, ifElseStatement->ifStatement.statementSequence->statementSequence.sequence[i]); | ||||
|         CompileStatement(builder, function, ifElseStatement->ifElseStatement.ifStatement->ifStatement.statementSequence->statementSequence.sequence[i]); | ||||
|     } | ||||
| 
 | ||||
|     LLVMBuildBr(builder, afterCond); | ||||
|  | @ -900,13 +900,13 @@ static void CompileFunction( | |||
| 
 | ||||
|     for (i = 0; i < functionSignature->functionSignature.arguments->functionSignatureArguments.count; i += 1) | ||||
|     { | ||||
|         char *ptrName = strdup(functionSignature->functionSignature.arguments->functionSignatureArguments.sequence[i]->identifier.name); | ||||
|         char *ptrName = strdup(functionSignature->functionSignature.arguments->functionSignatureArguments.sequence[i]->declaration.identifier->identifier.name); | ||||
|         strcat(ptrName, "_ptr"); | ||||
|         LLVMValueRef argument = LLVMGetParam(function, i + !isStatic); | ||||
|         LLVMValueRef argumentCopy = LLVMBuildAlloca(builder, LLVMTypeOf(argument), ptrName); | ||||
|         LLVMBuildStore(builder, argument, argumentCopy); | ||||
|         free(ptrName); | ||||
|         AddLocalVariable(scope, argumentCopy, NULL, functionSignature->functionSignature.arguments->functionSignatureArguments.sequence[i]->identifier.name); | ||||
|         AddLocalVariable(scope, argumentCopy, NULL, functionSignature->functionSignature.arguments->functionSignatureArguments.sequence[i]->declaration.identifier->identifier.name); | ||||
|     } | ||||
| 
 | ||||
|     for (i = 0; i < functionBody->statementSequence.count; i += 1) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue