aboutsummaryrefslogtreecommitdiff
path: root/clang/test/InstallAPI/diagnostics-dsym.test
blob: b8433653c3f76851cee9259b2a57f92f73cc2e9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
; REQUIRES: system-darwin
; REQUIRES: target-aarch64 

; RUN: rm -rf %t
; RUN: split-file %s %t

// Build a simple dylib with debug info.
; RUN: %clang --target=arm64-apple-macos11 -g -dynamiclib %t/foo.c \
; RUN: -current_version 1 -compatibility_version 1 -L%t/usr/lib \
; RUN: -save-temps -dynamiclib \
; RUN: -o %t/foo.dylib -install_name %t/foo.dylib
; RUN: dsymutil %t/foo.dylib -o %t/foo.dSYM

; RUN: not clang-installapi -x c++ --target=arm64-apple-macos11 \
; RUN: -install_name %t/foo.dylib  \
; RUN: -current_version 1 -compatibility_version 1 \
; RUN: -o %t/output.tbd -dynamiclib \
; RUN: --verify-against=%t/foo.dylib --dsym=%t/foo.dSYM \
; RUN: --verify-mode=Pedantic 2>&1 | FileCheck %s

; CHECK: violations found for arm64 
; CHECK-DAG: foo.c:5:0: error: no declaration found for exported symbol 'bar' in dynamic library
; CHECK-DAG: foo.c:1:0: error: no declaration found for exported symbol 'foo' in dynamic library

;--- foo.c
int foo(void) {
  return 1;
}
extern char bar;
char bar = 'a';

;--- usr/lib/libSystem.tbd
--- !tapi-tbd
tbd-version:     4
targets:         [ arm64-macos ]
install-name:    '/usr/lib/libSystem.B.dylib'
exports: 
  - targets: [ arm64-macos ]
    symbols: [ dyld_stub_binder ]
...