70177480ba
Check LLVM IR with llc
40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
Before:
|
|
Save g:ale_llvm_llc_executable
|
|
|
|
unlet! g:ale_llvm_llc_executable
|
|
unlet! b:ale_llvm_llc_executable
|
|
|
|
runtime ale_linters/llvm/llc.vim
|
|
|
|
function! AssertHasPrefix(str, prefix) abort
|
|
let msg = printf("'%s' is expected to be prefixed with '%s'", a:str, a:prefix)
|
|
AssertEqual stridx(a:str, a:prefix), 0, msg
|
|
endfunction
|
|
|
|
After:
|
|
unlet! g:ale_llvm_llc_executable
|
|
unlet! b:ale_llvm_llc_executable
|
|
delfunction AssertHasPrefix
|
|
Restore
|
|
|
|
Execute(llc command is customizable):
|
|
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
|
call AssertHasPrefix(cmd, ale#Escape('llc'))
|
|
|
|
let g:ale_llvm_llc_executable = 'llc-5.0'
|
|
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
|
call AssertHasPrefix(cmd, ale#Escape('llc-5.0'))
|
|
|
|
let b:ale_llvm_llc_executable = 'llc-4.0'
|
|
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
|
call AssertHasPrefix(cmd, ale#Escape('llc-4.0'))
|
|
|
|
Execute(GetCommand() escapes the returned path):
|
|
let b:ale_llvm_llc_executable = '/path/space contained/llc'
|
|
let cmd = ale_linters#llvm#llc#GetCommand(bufnr(''))
|
|
call AssertHasPrefix(cmd, ale#Escape('/path/space contained/llc'))
|
|
|
|
Execute(GetExecutable() does not escape the returned path):
|
|
let b:ale_llvm_llc_executable = '/path/space contained/llc'
|
|
AssertEqual ale_linters#llvm#llc#GetExecutable(bufnr('')), '/path/space contained/llc'
|