reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    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
// RUN: %clang -M %s 2>&1 | FileCheck %s --implicit-check-not=warning
// RUN: %clang -MM %s 2>&1 | FileCheck %s --implicit-check-not=warning

// CHECK: m-and-mm.o:
// TEST-I: {{.*}}test.i:
// TEST: {{.*}}test:

// RUN: mkdir -p %t.dir

/// if -MD and -MMD are not specified, -o specifies the dependency file name.
// RUN: rm -f %t.dir/test.i
// RUN: %clang -M %s -o %t.dir/test.i
// RUN: FileCheck %s < %t.dir/test.i
// RUN: rm -f %t.dir/test.i
// RUN: %clang -MM %s -o %t.dir/test.i
// RUN: FileCheck %s < %t.dir/test.i

// RUN: rm -f %t.dir/test.d
// RUN: %clang -fsyntax-only -MD %s -o %t.dir/test.i
// RUN: FileCheck --check-prefix=TEST-I %s < %t.dir/test.d

// RUN: rm -f %t.dir/test.d
// RUN: %clang -M -MD %s -o %t.dir/test.i
// RUN: FileCheck --check-prefix=TEST-I %s < %t.dir/test.d

/// If the output file name does not have a suffix, just append `.d`.
// RUN: rm -f %t.dir/test.d
// RUN: %clang -fsyntax-only -MD %s -o %t.dir/test
// RUN: FileCheck --check-prefix=TEST %s < %t.dir/test.d

#warning "-M and -MM suppresses warnings, thus this warning shouldn't show up"
int main(void)
{
    return 0;
}