diff options
Diffstat (limited to 'test/Frontend')
-rw-r--r-- | test/Frontend/darwin-version.c | 34 | ||||
-rw-r--r-- | test/Frontend/dependency-gen-escaping.c | 30 | ||||
-rw-r--r-- | test/Frontend/dependency-gen.c | 1 | ||||
-rw-r--r-- | test/Frontend/dependency-generation-crash.c | 7 | ||||
-rw-r--r-- | test/Frontend/gnu-inline.c | 15 | ||||
-rw-r--r-- | test/Frontend/plugin-delayed-template.cpp | 17 | ||||
-rw-r--r-- | test/Frontend/print-header-includes.c | 2 | ||||
-rw-r--r-- | test/Frontend/rewrite-includes-line-markers.c | 22 | ||||
-rw-r--r-- | test/Frontend/x86_64-nacl-types.cpp | 6 |
9 files changed, 100 insertions, 34 deletions
diff --git a/test/Frontend/darwin-version.c b/test/Frontend/darwin-version.c index 2e0804baf90e..2da0c4c7a574 100644 --- a/test/Frontend/darwin-version.c +++ b/test/Frontend/darwin-version.c @@ -1,27 +1,27 @@ -// RUN: %clang -target armv6-apple-darwin9 -dM -E -o %t %s -// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t -// RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1050' | count 1 -// RUN: %clang -target armv6-apple-darwin9 -miphoneos-version-min=3.0 -dM -E -o %t %s +// RUN: %clang_cc1 -triple armv6-apple-ios3.0.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t | grep '30000' | count 1 // RUN: not grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t -// RUN: %clang -target armv6-apple-darwin9 -miphoneos-version-min=2.0 -dM -E -o %t %s +// RUN: %clang_cc1 -triple armv6-apple-ios2.0.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t | grep '20000' | count 1 // RUN: not grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t -// RUN: %clang -target armv6-apple-darwin9 -miphoneos-version-min=2.2 -dM -E -o %t %s +// RUN: %clang_cc1 -triple armv6-apple-ios2.2.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t | grep '20200' | count 1 -// RUN: %clang -target i686-apple-darwin8 -dM -E -o %t %s -// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t +// RUN: not grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t +// RUN: %clang_cc1 -triple armv6-apple-ios2.3.1 -dM -E -o %t %s +// RUN: grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t | grep '20301' | count 1 +// RUN: not grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t +// RUN: %clang_cc1 -triple i386-apple-macosx10.4.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1040' | count 1 -// RUN: %clang -target i686-apple-darwin9 -dM -E -o %t %s -// RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1050' | count 1 -// RUN: %clang -target i686-apple-darwin10 -dM -E -o %t %s -// RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1060' | count 1 -// RUN: %clang -target i686-apple-darwin9 -mmacosx-version-min=10.4 -dM -E -o %t %s // RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t -// RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1040' | count 1 -// RUN: %clang -target i686-apple-darwin9 -mmacosx-version-min=10.5 -dM -E -o %t %s +// RUN: %clang_cc1 -triple i386-apple-macosx10.4.10 -dM -E -o %t %s +// RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1049' | count 1 +// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t +// RUN: %clang_cc1 -triple i386-apple-macosx10.5.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1050' | count 1 -// RUN: %clang -target i686-apple-darwin9 -mmacosx-version-min=10.6 -dM -E -o %t %s +// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t +// RUN: %clang_cc1 -triple i386-apple-macosx10.6.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '1060' | count 1 -// RUN: %clang -target x86_64-apple-macosx -mmacosx-version-min=10.10 -dM -E -o %t %s +// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.10.0 -dM -E -o %t %s // RUN: grep '__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__' %t | grep '101000' | count 1 +// RUN: not grep '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__' %t diff --git a/test/Frontend/dependency-gen-escaping.c b/test/Frontend/dependency-gen-escaping.c index 84eb242ec3c9..c8d1191674c8 100644 --- a/test/Frontend/dependency-gen-escaping.c +++ b/test/Frontend/dependency-gen-escaping.c @@ -1,17 +1,31 @@ -// REQUIRES: shell // PR15642 -// RUN: rm -rf %t.dir -// RUN: mkdir -p %t.dir -// RUN: echo > '%t.dir/ .h' -// RUN: echo > '%t.dir/$$.h' -// RUN: echo > '%t.dir/##.h' -// RUN: cd %t.dir -// RUN: %clang -MD -MF - %s -fsyntax-only -I. | FileCheck -strict-whitespace %s +// RUN: %clang -M -MG -fno-ms-compatibility %s | FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=SEP2F +// RUN: %clang -M -MG -fms-compatibility %s | FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=SEP5C +// RUN: %clang -M -MG -MV %s | FileCheck -strict-whitespace %s --check-prefix=NMAKE // CHECK: \ \ \ \ .h // CHECK: $$$$.h // CHECK: \#\#.h +// NMAKE: " .h" +// NMAKE: "$$.h" +// NMAKE: "##.h" +// NMAKE-NOT: " +// NMAKE: normal.h +// NMAKE-NOT: " #include " .h" #include "$$.h" #include "##.h" +#include "normal.h" + +// Backslash followed by # or space should escape both characters, because +// that's what GNU Make wants. GCC does the right thing with space, but not +// #, so Clang does too. (There should be 3 backslashes before the #.) +// SEP2F: a\b\\#c\\\ d.h +// With -fms-compatibility, Backslashes in #include are treated as path separators. +// Backslashes are given in the emission for special characters, like 0x20 or 0x23. +// SEP5C: a{{[/\\]}}b{{[/\\]}}\#c{{/|\\\\}}\ d.h +// These combinations are just another case for NMAKE. +// NMAKE: "a{{[/\\]}}b{{[/\\]}}#c{{[/\\]}} d.h" + +#include "a\b\#c\ d.h" diff --git a/test/Frontend/dependency-gen.c b/test/Frontend/dependency-gen.c index 5883ec5586ff..0465dc864e42 100644 --- a/test/Frontend/dependency-gen.c +++ b/test/Frontend/dependency-gen.c @@ -1,4 +1,3 @@ -// REQUIRES: shell // Basic test // RUN: rm -rf %t.dir // RUN: mkdir -p %t.dir/a/b diff --git a/test/Frontend/dependency-generation-crash.c b/test/Frontend/dependency-generation-crash.c index 181bb71f1b09..2fc3348bed29 100644 --- a/test/Frontend/dependency-generation-crash.c +++ b/test/Frontend/dependency-generation-crash.c @@ -1,4 +1,5 @@ -// RUN: touch %t -// RUN: chmod 0 %t -// %clang -E -dependency-file bla -MT %t -MP -o %t -x c /dev/null +// RUN: not %clang_cc1 -E -dependency-file bla -MT %t/doesnotexist/bla.o -MP -o %t/doesnotexist/bla.o -x c /dev/null 2>&1 | FileCheck %s + +// CHECK: error: unable to open output file + // rdar://9286457 diff --git a/test/Frontend/gnu-inline.c b/test/Frontend/gnu-inline.c new file mode 100644 index 000000000000..0272df7e71ec --- /dev/null +++ b/test/Frontend/gnu-inline.c @@ -0,0 +1,15 @@ +// RUN: %clang_cc1 -std=c89 -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s +// RUN: %clang_cc1 -std=c99 -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=STDC-INLINE %s +// RUN: %clang_cc1 -std=c99 -fgnu89-inline -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s +// RUN: %clang_cc1 -fsyntax-only -x c++ -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s +// RUN: not %clang_cc1 -fgnu89-inline -fsyntax-only -x c++ %s 2>&1 | FileCheck --check-prefix=CXX %s + +// CXX: '-fgnu89-inline' not allowed with 'C++/ObjC++' + +// STDC-INLINE-NOT: __GNUC_GNU_INLINE__ +// STDC-INLINE: #define __GNUC_STDC_INLINE__ 1 +// STDC-INLINE-NOT: __GNUC_GNU_INLINE__ + +// GNU-INLINE-NOT: __GNUC_STDC_INLINE__ +// GNU-INLINE: #define __GNUC_GNU_INLINE__ 1 +// GNU-INLINE-NOT: __GNUC_STDC_INLINE__ diff --git a/test/Frontend/plugin-delayed-template.cpp b/test/Frontend/plugin-delayed-template.cpp new file mode 100644 index 000000000000..c57ec3076897 --- /dev/null +++ b/test/Frontend/plugin-delayed-template.cpp @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -fdelayed-template-parsing -load %llvmshlibdir/PrintFunctionNames%pluginext -plugin print-fns -plugin-arg-print-fns -parse-template -plugin-arg-print-fns ForcedTemplate %s 2>&1 | FileCheck %s +// REQUIRES: plugins, examples + +template <typename T> +void TemplateDep(); + +// CHECK: top-level-decl: "ForcedTemplate" +// The plugin should force parsing of this template, even though it's +// not used and -fdelayed-template-parsing is specified. +// CHECK: warning: expression result unused +// CHECK: late-parsed-decl: "ForcedTemplate" +template <typename T> +void ForcedTemplate() { + TemplateDep<T>(); // Shouldn't crash. + + ""; // Triggers the warning checked for above. +} diff --git a/test/Frontend/print-header-includes.c b/test/Frontend/print-header-includes.c index 6fde00cbbe5b..966b4af86069 100644 --- a/test/Frontend/print-header-includes.c +++ b/test/Frontend/print-header-includes.c @@ -1,5 +1,3 @@ -// REQUIRES: shell - // RUN: cd %S // RUN: %clang_cc1 -include Inputs/test3.h -E -H -o %t.out %s 2> %t.stderr // RUN: FileCheck < %t.stderr %s diff --git a/test/Frontend/rewrite-includes-line-markers.c b/test/Frontend/rewrite-includes-line-markers.c new file mode 100644 index 000000000000..14692a19e9bc --- /dev/null +++ b/test/Frontend/rewrite-includes-line-markers.c @@ -0,0 +1,22 @@ +// RUN: %clang_cc1 -E -frewrite-includes -I %S/Inputs %s | FileCheck %s --check-prefix=GNU +// RUN: %clang_cc1 -E -frewrite-includes -fuse-line-directives -I %S/Inputs %s | FileCheck %s --check-prefix=LINE +#include "test.h" +int f() { return x; } + +// GNU: {{^}}# 1 "{{.*}}rewrite-includes-line-markers.c" +// GNU: {{^}}#include "test.h" +// GNU: {{^}}# 1 "{{.*}}test.h" +// GNU: {{^}}#include "test2.h" +// GNU: {{^}}# 1 "{{.*}}test2.h" +// GNU: {{^}}int x; +// GNU: {{^}}# 4 "{{.*}}rewrite-includes-line-markers.c" 2 +// GNU: {{^}}int f() { return x; } + +// LINE: {{^}}#line 1 "{{.*}}rewrite-includes-line-markers.c" +// LINE: {{^}}#include "test.h" +// LINE: {{^}}#line 1 "{{.*}}test.h" +// LINE: {{^}}#include "test2.h" +// LINE: {{^}}#line 1 "{{.*}}test2.h" +// LINE: {{^}}int x; +// LINE: {{^}}#line 4 "{{.*}}rewrite-includes-line-markers.c" +// LINE: {{^}}int f() { return x; } diff --git a/test/Frontend/x86_64-nacl-types.cpp b/test/Frontend/x86_64-nacl-types.cpp index a994cb75ef66..ca200147f401 100644 --- a/test/Frontend/x86_64-nacl-types.cpp +++ b/test/Frontend/x86_64-nacl-types.cpp @@ -6,14 +6,14 @@ static_assert(alignof(char) == 1, "alignof char is wrong"); -static_assert(alignof(short) == 2, "sizeof short is wrong"); +static_assert(sizeof(short) == 2, "sizeof short is wrong"); static_assert(alignof(short) == 2, "alignof short is wrong"); -static_assert(alignof(int) == 4, "sizeof int is wrong"); +static_assert(sizeof(int) == 4, "sizeof int is wrong"); static_assert(alignof(int) == 4, "alignof int is wrong"); static_assert(sizeof(long) == 4, "sizeof long is wrong"); -static_assert(sizeof(long) == 4, "alignof long is wrong"); +static_assert(alignof(long) == 4, "alignof long is wrong"); static_assert(sizeof(long long) == 8, "sizeof long long is wrong wrong"); static_assert(alignof(long long) == 8, "alignof long long is wrong wrong"); |