mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
ef778d0fcb
Summary: clang adds !srcloc metadata to inline assembly in LLVM bitcode generated for inline assembly in C. The value of this !srcloc is passed to the diagnostics handler if the inline assembly generates a diagnostic. clang is able to turn this cookie back to a location in the C source file. To test this functionality without a dependency, make llc print the !srcloc metadata if it is present. The added test uses this mechanism to test that the correct !srclocs are passed to the diag handler. Reviewers: rengolin, rnk, echristo, grosbach, mehdi_amini Reviewed By: mehdi_amini Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D30167 llvm-svn: 296465
38 lines
1.5 KiB
LLVM
38 lines
1.5 KiB
LLVM
; RUN: not llc -filetype=obj 2>&1 -o /dev/null < %s | FileCheck %s
|
|
|
|
; ModuleID = '/scratch/llvm/master/tools/clang/test/Misc/inline-asm-diags.c'
|
|
source_filename = "/scratch/llvm/master/tools/clang/test/Misc/inline-asm-diags.c"
|
|
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "armv7-arm-none-eabi"
|
|
|
|
; Function Attrs: noinline nounwind
|
|
define void @foo2() #0 {
|
|
entry:
|
|
call void asm sideeffect " wibble", ""() #1, !srcloc !3
|
|
; CHECK: note: !srcloc = 107
|
|
ret void
|
|
}
|
|
|
|
; Function Attrs: noinline nounwind
|
|
define void @foo() #0 {
|
|
entry:
|
|
call void asm sideeffect " .word -bar", ""() #1, !srcloc !4
|
|
; CHECK: note: !srcloc = 181
|
|
call void asm sideeffect " .word -foo", ""() #1, !srcloc !5
|
|
; CHECK: note: !srcloc = 257
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { noinline nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="cortex-a8" "target-features"="+dsp,+neon,+strict-align,+vfp3" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
attributes #1 = { nounwind }
|
|
|
|
!llvm.module.flags = !{!0, !1}
|
|
!llvm.ident = !{!2}
|
|
|
|
!0 = !{i32 1, !"wchar_size", i32 4}
|
|
!1 = !{i32 1, !"min_enum_size", i32 4}
|
|
!2 = !{!"clang version 5.0.0 "}
|
|
!3 = !{i32 107}
|
|
!4 = !{i32 181}
|
|
!5 = !{i32 257}
|