Generator now adds null terminator to c-strings

This commit is contained in:
Sasha Koshka 2023-11-29 00:45:38 -05:00
parent 37819645cd
commit c5a61e15f6

View File

@ -90,7 +90,7 @@ func (this *generator) generateLiteralArrayLoc (literal *entity.LiteralArray) (l
func (this *generator) generateLiteralStringLoc (literal *entity.LiteralString) (llvm.Value, error) { func (this *generator) generateLiteralStringLoc (literal *entity.LiteralString) (llvm.Value, error) {
base := analyzer.ReduceToBase(literal.Type()) base := analyzer.ReduceToBase(literal.Type())
makeData := func (anyElementType entity.Type) (llvm.Value, int64, error) { makeData := func (anyElementType entity.Type, cstring bool) (llvm.Value, int64, error) {
elementType, ok := analyzer.ReduceToBase(anyElementType).(*entity.TypeInt) elementType, ok := analyzer.ReduceToBase(anyElementType).(*entity.TypeInt)
if !ok { if !ok {
return nil, 0, errors.New(fmt.Sprintln("string can't be used as ", base)) return nil, 0, errors.New(fmt.Sprintln("string can't be used as ", base))