58 lines
		
	
	
		
			818 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			818 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| //args: -Egovet
 | |
| //config: linters-settings.govet.enable=fieldalignment
 | |
| package testdata
 | |
| 
 | |
| type gvfaGood struct {
 | |
| 	y int32
 | |
| 	x byte
 | |
| 	z byte
 | |
| }
 | |
| 
 | |
| type gvfaBad struct { // ERROR "struct of size 12 could be 8"
 | |
| 	x byte
 | |
| 	y int32
 | |
| 	z byte
 | |
| }
 | |
| 
 | |
| type gvfaPointerGood struct {
 | |
| 	P   *int
 | |
| 	buf [1000]uintptr
 | |
| }
 | |
| 
 | |
| type gvfaPointerBad struct { // ERROR "struct with 8008 pointer bytes could be 8"
 | |
| 	buf [1000]uintptr
 | |
| 	P   *int
 | |
| }
 | |
| 
 | |
| type gvfaPointerSorta struct {
 | |
| 	a struct {
 | |
| 		p *int
 | |
| 		q uintptr
 | |
| 	}
 | |
| 	b struct {
 | |
| 		p *int
 | |
| 		q [2]uintptr
 | |
| 	}
 | |
| }
 | |
| 
 | |
| type gvfaPointerSortaBad struct { // ERROR "struct with 32 pointer bytes could be 24"
 | |
| 	a struct {
 | |
| 		p *int
 | |
| 		q [2]uintptr
 | |
| 	}
 | |
| 	b struct {
 | |
| 		p *int
 | |
| 		q uintptr
 | |
| 	}
 | |
| }
 | |
| 
 | |
| type gvfaZeroGood struct {
 | |
| 	a [0]byte
 | |
| 	b uint32
 | |
| }
 | |
| 
 | |
| type gvfaZeroBad struct { // ERROR "struct of size 8 could be 4"
 | |
| 	a uint32
 | |
| 	b [0]byte
 | |
| }
 | 
