| # Compile with: | |
| # cat >modules.modulemap <<EOF | |
| # module Foo { | |
| # header "Foo.h" | |
| # export * | |
| # } | |
| # module Bar { | |
| # header "Bar.h" | |
| # export * | |
| # } | |
| # EOF | |
| # echo 'typedef int bar;' >Bar.h | |
| # echo '@import Bar; typedef bar foo;' >Foo.h | |
| # echo '@import Foo; foo f() { return 0; }' >module-warnings.m | |
| # clang -cc1 -emit-obj -fmodules -fmodule-map-file=modules.modulemap \ | |
| # -fmodule-format=obj -debug-info-kind=standalone -dwarf-ext-refs \ | |
| # -fmodules-cache-path=ModuleCache \ | |
| # -fdisable-module-hash module-warnings.m -o 1.o | |
| # | |
| # Test for module-related warnings. | |
| # | |
| # RUN: rm -rf %t.dir && mkdir %t.dir && mkdir %t.dir/ModuleCache | |
| # RUN: cp %p/../Inputs/module-warnings/1.o %t.dir | |
| # RUN: cp %p/../Inputs/module-warnings/Foo.pcm %t.dir/ModuleCache | |
| # | |
| # RUN: dsymutil -f -oso-prepend-path=%t.dir -y \ | |
| # RUN: %p/dummy-debug-map.map -o %t 2>&1 | FileCheck %s | |
| # | |
| # Module-not-found should be reported only once. | |
| # The exact error message depends on the OS so we don't check for it. | |
| # CHECK: warning: {{.*}}Bar.pcm: | |
| # CHECK-NOT: warning: {{.*}}Bar.pcm: | |
| # | |
| # RUN: cp %p/../Inputs/module-warnings/libstatic.a %t.dir | |
| # RUN: dsymutil -f -oso-prepend-path=%t.dir -y %s -o %t 2>&1 | FileCheck %s | |
| # CHECK: rebuild the module cache | |
| # CHECK-NOT: static libraries | |
| # | |
| # RUN: rm -rf %t.dir/ModuleCache | |
| # RUN: dsymutil -f -oso-prepend-path=%t.dir -y %s -o %t 2>&1 \ | |
| # RUN: | FileCheck %s --check-prefix=STATIC | |
| # STATIC: warning: {{.*}}Bar.pcm: | |
| # STATIC: note: Linking a static library | |
| # STATIC: warning: {{.*}}Foo.pcm: | |
| # STATIC-NOT: warning: | |
| --- | |
| triple: 'x86_64-apple-darwin' | |
| objects: | |
| - filename: libstatic.a(1.o) | |
| symbols: | |
| - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 } | |
| ... |