llvm/clang/test/Preprocessor/pragma-missing-string-token.c

// RUN: rm -rf %t
// RUN: split-file %s %t

// RUN: %clang_cc1 -emit-module -x c -fmodules -I %t/Inputs -fmodule-name=aa %t/Inputs/module.modulemap -o %t/aa.pcm
// RUN: rm %t/Inputs/b.h
// RUN: not %clang_cc1 -E -fmodules -I %t/Inputs -fmodule-file=%t/aa.pcm %s -o - -fallow-pcm-with-compiler-errors 2>&1 | FileCheck %s

//--- Inputs/module.modulemap
module aa {
    header "a.h"
    header "b.h"
}

//--- Inputs/a.h
#define TEST(x) x

//--- Inputs/b.h
#define SUB "mypragma"

//--- test.c
#include "a.h"

_Pragma(SUB);
int a = TEST(SUB);

// CHECK: int a
// CHECK: 1 error generated