Disable strict aliasing explicitly in the project makefiles, as this is apparently enabled by default in newer AVR-GCC builds, and aliasing is used heavily for type-punning through the LUFA and third party library's codebase.
This commit is contained in:
		
							parent
							
								
									f4710f6f86
								
							
						
					
					
						commit
						9299735c75
					
				
					 72 changed files with 82 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -214,6 +214,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -213,6 +213,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ bool SCSI_DecodeSCSICommand(void)
 | 
			
		|||
 */
 | 
			
		||||
static void SCSI_Command_Inquiry(void)
 | 
			
		||||
{
 | 
			
		||||
	uint16_t AllocationLength  = SwapEndian_16(*(uint32_t*)&CommandBlock.SCSICommandData[3]);
 | 
			
		||||
	uint16_t AllocationLength  = SwapEndian_16(*(uint16_t*)&CommandBlock.SCSICommandData[3]);
 | 
			
		||||
	uint16_t BytesTransferred  = (AllocationLength < sizeof(InquiryData))? AllocationLength :
 | 
			
		||||
	                                                                       sizeof(InquiryData);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -259,7 +259,7 @@ static void SCSI_Command_ReadWrite_10(const bool IsDataRead)
 | 
			
		|||
	BlockAddress = SwapEndian_32(*(uint32_t*)&CommandBlock.SCSICommandData[2]);
 | 
			
		||||
 | 
			
		||||
	/* Load in the 16-bit total blocks (SCSI uses big-endian, so have to reverse the byte order) */
 | 
			
		||||
	TotalBlocks  = SwapEndian_16(*(uint32_t*)&CommandBlock.SCSICommandData[7]);
 | 
			
		||||
	TotalBlocks  = SwapEndian_16(*(uint16_t*)&CommandBlock.SCSICommandData[7]);
 | 
			
		||||
 | 
			
		||||
	/* Check if the block address is outside the maximum allowable value for the LUN */
 | 
			
		||||
	if (BlockAddress >= LUN_MEDIA_BLOCKS)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -215,6 +215,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,6 +212,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
#CFLAGS += -mshort-calls
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -226,6 +226,7 @@ CFLAGS += -ffunction-sections
 | 
			
		|||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -210,9 +210,10 @@ CFLAGS += -O$(OPT)
 | 
			
		|||
CFLAGS += -funsigned-char
 | 
			
		||||
CFLAGS += -funsigned-bitfields
 | 
			
		||||
CFLAGS += -ffunction-sections
 | 
			
		||||
CFLAGS += -fno-inline-small-functions
 | 
			
		||||
CFLAGS += -fpack-struct
 | 
			
		||||
CFLAGS += -fshort-enums
 | 
			
		||||
CFLAGS += -finline-limit=20
 | 
			
		||||
CFLAGS += -fno-strict-aliasing
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue