49 lines
1.1 KiB
C
49 lines
1.1 KiB
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 -I%S -Xclang -verify | FileCheck %s
|
|
// Test externCUndo
|
|
|
|
.storeState "A"
|
|
|
|
extern "C" int printf(const char*,...);
|
|
|
|
.storeState "B"
|
|
|
|
extern "C" int printf(const char*,...);
|
|
extern "C" int printf(const char*,...);
|
|
extern "C" int printf(const char*,...);
|
|
extern "C" int printf(const char*,...);
|
|
|
|
extern "C" {
|
|
int printf(const char*,...);
|
|
int abs(int);
|
|
double atof(const char *);
|
|
void free(void* ptr);
|
|
}
|
|
|
|
.undo // extern "C" {}
|
|
.undo // printf
|
|
.undo // printf
|
|
.undo // printf
|
|
.undo // printf
|
|
|
|
.compareState "B"
|
|
|
|
printf("Unloaded alot\n");
|
|
// CHECK: Unloaded alot
|
|
|
|
.undo // printf()
|
|
.undo // printf
|
|
|
|
.compareState "A"
|
|
|
|
printf("FAIL\n"); // expected-error@2 {{use of undeclared identifier 'printf'}}
|
|
|
|
.q
|