blob: f365edf66158864b55d0614dc73c6cd8c694afcd [file] [edit]
// 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}}