compiler: insert nil checks when storing to a pointer
This does increase code size, but it is necessary to avoid undefined behavior.
Этот коммит содержится в:
		
							родитель
							
								
									371c468e8e
								
							
						
					
					
						коммит
						3c2639ad55
					
				
					 1 изменённых файлов: 1 добавлений и 0 удалений
				
			
		|  | @ -1054,6 +1054,7 @@ func (c *Compiler) parseInstr(frame *Frame, instr ssa.Instruction) { | |||
| 	case *ssa.Store: | ||||
| 		llvmAddr := c.getValue(frame, instr.Addr) | ||||
| 		llvmVal := c.getValue(frame, instr.Val) | ||||
| 		c.emitNilCheck(frame, llvmAddr, "store") | ||||
| 		if c.targetData.TypeAllocSize(llvmVal.Type()) == 0 { | ||||
| 			// nothing to store | ||||
| 			return | ||||
|  |  | |||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 Ayke van Laethem
						Ayke van Laethem