cling/test/ErrorRecovery/MacroExpansion.C
Vassil Vassilev 8f257e74d3 Create a virtual file entry for each input line.
This is the only way not to confuse the diagnostics engine of upgraded clang.

Also, this gives us a few advantages:
  * We can compare more precisely the source locations of diagnostics;
  * We can merge the code completion code path which works with file entries;
  * We can rely better when specifying //expected-note-s in different files.
2017-06-08 10:29:13 +02:00

27 lines
919 B
C

//------------------------------------------------------------------------------
// CLING - the C++ LLVM-based InterpreterG :)
//
// This file is dual-licensed: you can choose to license it under the University
// of Illinois Open Source License or the GNU Lesser General Public License. See
// LICENSE.TXT for details.
//------------------------------------------------------------------------------
// RUN: cat %s | %cling -Xclang -verify 2>&1 | FileCheck %s
#define BEGIN_NAMESPACE namespace test_namespace {
#define END_NAMESPACE }
.rawInput 1
BEGIN_NAMESPACE int j; END_NAMESPACE // expected-note {{previous definition is here}}
.storeState "testMacroExpansion"
BEGIN_NAMESPACE int j; END_NAMESPACE // expected-error {{redefinition of 'j'}}
.compareState "testMacroExpansion"
.rawInput 0
// CHECK-NOT: Differences
// Make FileCheck happy with having at least one positive rule:
int a = 5
// CHECK: (int) 5
.q