2020-02-12 15:01:35 +08:00
; RUN: not --crash llc -march=hexagon < %s 2>&1 | FileCheck %s
2018-08-09 01:00:09 +08:00
; Check that the misaligned load is diagnosed.
; CHECK: LLVM ERROR: Misaligned constant address: 0x00012345 has alignment 1, but the memory access requires 4, at misaligned-const-load.c:2:10
target triple = "hexagon"
define i32 @bad_load ( ) #0 !dbg !10 {
entry:
%0 = load i32 , i32 * inttoptr ( i32 74565 to i32 * ) , align 4 , !dbg !13 , !tbaa !14
ret i32 %0 , !dbg !18
}
attributes #0 = { norecurse nounwind readonly "target-cpu" = "hexagonv60" }
!llvm.dbg.cu = ! { !0 }
!llvm.module.flags = ! { !6 , !7 , !8 }
!llvm.ident = ! { !9 }
2019-01-16 00:18:52 +08:00
!0 = distinct !DICompileUnit ( language: D W _ L A N G _ C 99 , file: !1 , producer: "clang version 8.0.0" , isOptimized: true , runtimeVersion: 0 , emissionKind: F u l l D e b u g , enums: !2 , retainedTypes: !3 )
2018-08-09 01:00:09 +08:00
!1 = !DIFile ( filename: "misaligned-const-load.c" , directory: "/test" )
!2 = ! { }
!3 = ! { !4 }
!4 = !DIDerivedType ( tag: D W _ T A G _ p o i n t e r _ type , baseType: !5 , size: 32 )
!5 = !DIBasicType ( name: "unsigned int" , size: 32 , encoding: D W _ A T E _ u n s i g n e d )
!6 = ! { i32 2 , !"Dwarf Version" , i32 4 }
!7 = ! { i32 2 , !"Debug Info Version" , i32 3 }
!8 = ! { i32 1 , !"wchar_size" , i32 4 }
2019-01-16 00:18:52 +08:00
!9 = ! { !"clang version 8.0.0" }
2018-08-09 01:00:09 +08:00
!10 = distinct !DISubprogram ( name: "bad_load" , scope: !1 , file: !1 , line: 1 , type: !11 , isLocal: false , isDefinition: true , scopeLine: 1 , isOptimized: true , unit: !0 , retainedNodes: !2 )
!11 = !DISubroutineType ( types: !12 )
!12 = ! { !5 }
!13 = !DILocation ( line: 2 , column: 10 , scope: !10 )
!14 = ! { !15 , !15 , i64 0 }
!15 = ! { !"int" , !16 , i64 0 }
!16 = ! { !"omnipotent char" , !17 , i64 0 }
!17 = ! { !"Simple C/C++ TBAA" }
!18 = !DILocation ( line: 2 , column: 3 , scope: !10 )