| // RUN: split-file %s %t | |
| // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -fsyntax-only -verify %t/unsupported.c | |
| // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -verify %t/unsupported.c | |
| // RUN: %clang_cc1 -triple systemz -fsyntax-only -verify %t/unsupported.c | |
| // RUN: %clang_cc1 -triple powerpc64-linux-gnu -fsyntax-only -verify %t/unsupported.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/copyright.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/copyright.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/empty-copyright.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/empty-copyright.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/other-kinds.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/other-kinds.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/duplicate.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/duplicate.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/raw-string-literal.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/raw-string-literal.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/concat-escape.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/concat-escape.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/u8-literal.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/u8-literal.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/wide-literal.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/wide-literal.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/utf16-literal.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/utf16-literal.c | |
| // RUN: %clang_cc1 -triple powerpc-ibm-aix -fsyntax-only -verify %t/utf32-literal.c | |
| // RUN: %clang_cc1 -triple powerpc64-ibm-aix -fsyntax-only -verify %t/utf32-literal.c | |
| //--- unsupported.c | |
| // pragma comment kinds not supported on this target. | |
| #pragma comment(copyright, "copyright") // expected-warning {{'#pragma comment copyright' ignored}} | |
| #pragma comment(compiler) // expected-warning {{'#pragma comment compiler' ignored}} | |
| #pragma comment(exestr, "foo") // expected-warning {{'#pragma comment exestr' ignored}} | |
| #pragma comment(user, "foo\abar\nbaz\tsomething") // expected-warning {{'#pragma comment user' ignored}} | |
| #pragma comment(timestamp) // expected-error {{unknown kind of pragma comment}} | |
| #pragma comment(date) // expected-error {{unknown kind of pragma comment}} | |
| //--- copyright.c | |
| // Copyright pragma is accepted without diagnostics. | |
| #pragma comment(copyright, "copyright") // expected-no-diagnostics | |
| //--- empty-copyright.c | |
| // An empty copyright string is accepted without diagnostics. | |
| #pragma comment(copyright, "") // expected-no-diagnostics | |
| //--- other-kinds.c | |
| // Non-copyright comment kinds produce warnings/errors. | |
| #pragma comment(lib, "m") // expected-warning {{'#pragma comment lib' ignored}} | |
| #pragma comment(linker, "foo") // expected-warning {{'#pragma comment linker' ignored}} | |
| #pragma comment(compiler) // expected-warning {{'#pragma comment compiler' ignored}} | |
| #pragma comment(exestr, "foo") // expected-warning {{'#pragma comment exestr' ignored}} | |
| #pragma comment(user, "foo\abar\nbaz\tsomething") // expected-warning {{'#pragma comment user' ignored}} | |
| #pragma comment(timestamp) // expected-error {{unknown kind of pragma comment}} | |
| #pragma comment(date) // expected-error {{unknown kind of pragma comment}} | |
| //--- duplicate.c | |
| // A second copyright pragma in the same translation unit warns. | |
| #pragma comment(copyright, "@(#) Copyright") | |
| #pragma comment(copyright, "Duplicate Copyright") // expected-warning {{'#pragma comment copyright' ignored: it can be specified only once per translation unit}} | |
| //--- raw-string-literal.c | |
| // Raw string literals are accepted. | |
| #pragma comment(copyright, R"foo(printf("Hello (world)");)foo") // expected-no-diagnostics | |
| //--- concat-escape.c | |
| // Concatenated ordinary string literals and escapes are accepted. | |
| #pragma comment(copyright, "@(#) Hello, " "world\n\t\"@(#) quoted\"") // expected-no-diagnostics | |
| //--- u8-literal.c | |
| // UTF-8-prefixed string literals are rejected. | |
| #pragma comment(copyright, u8"@(#) Hello unicode") // expected-error {{expected string literal in pragma comment}} | |
| //--- wide-literal.c | |
| // Wide string literals are rejected. | |
| #pragma comment(copyright, L"@(#) Hello wide") // expected-error {{expected string literal in pragma comment}} | |
| //--- utf16-literal.c | |
| // UTF-16-prefixed string literals are rejected. | |
| #pragma comment(copyright, u"@(#) Hello utf16") // expected-error {{expected string literal in pragma comment}} | |
| //--- utf32-literal.c | |
| // UTF-32-prefixed string literals are rejected. | |
| #pragma comment(copyright, U"@(#) Hello utf32") // expected-error {{expected string literal in pragma comment}} |