b118f4dee3
that is anyway what we want to test, always. And nothing seems to set the env var.
102 lines
2.8 KiB
C
102 lines
2.8 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 -Xclang -verify 2>&1 | FileCheck %s
|
|
// Make sure we are correctly parsing the arguments for CIFactory::createCI
|
|
|
|
#include "cling/Interpreter/InvocationOptions.h"
|
|
|
|
const char* argv[] = {
|
|
"progname",
|
|
"-",
|
|
"-xobjective-c",
|
|
"FileToExecuteA",
|
|
"-isysroot",
|
|
"APAth",
|
|
"-nobuiltininc",
|
|
"-v",
|
|
"FileToExecuteB",
|
|
"-L/Path/To/Libs",
|
|
"-lTest"
|
|
};
|
|
const int argc = sizeof(argv)/sizeof(argv[0]);
|
|
|
|
cling::CompilerOptions COpts(argc, argv);
|
|
|
|
COpts.Language
|
|
// CHECK: (unsigned int) 1
|
|
COpts.SysRoot
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
COpts.NoBuiltinInc
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
COpts.NoCXXInc
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
COpts.CUDAHost
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
COpts.CUDADevice
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
|
|
COpts.DefaultLanguage()
|
|
// CHECK-NEXT: false
|
|
|
|
// library caller options: arguments passed as is
|
|
COpts.Remaining
|
|
// CHECK-NEXT: {{.*}} { "progname", "-", "-xobjective-c", "FileToExecuteA", "-isysroot", "APAth", "-nobuiltininc", "-v", "FileToExecuteB", "-L/Path/To/Libs", "-lTest" }
|
|
|
|
argv[2] = "-xcuda";
|
|
argv[6] = "-nostdinc++";
|
|
|
|
cling::InvocationOptions IOpts(argc, argv);
|
|
IOpts.Inputs
|
|
// CHECK-NEXT: {{.*}} { "-", "FileToExecuteA", "FileToExecuteB" }
|
|
|
|
IOpts.LibSearchPath
|
|
// CHECK-NEXT: {{.*}} { "/Path/To/Libs" }
|
|
|
|
IOpts.LibsToLoad
|
|
// CHECK-NEXT: {{.*}} { "Test" }
|
|
|
|
IOpts.CompilerOpts.Language
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
IOpts.CompilerOpts.SysRoot
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
IOpts.CompilerOpts.NoBuiltinInc
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
IOpts.CompilerOpts.NoCXXInc
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
IOpts.CompilerOpts.CUDAHost
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
IOpts.CompilerOpts.CUDADevice
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
|
|
// if the language is cuda, it should set automatically the c++ standard
|
|
IOpts.CompilerOpts.DefaultLanguage()
|
|
// CHECK-NEXT: true
|
|
|
|
// user options from main: filtered by cling (no '-')
|
|
IOpts.CompilerOpts.Remaining
|
|
|
|
// Windows translates -nostdinc++ to -nostdinc++. Ignore that fact for the test.
|
|
// CHECK-NEXT: {{.*}} { "progname", "-xcuda", "FileToExecuteA", "-isysroot", "APAth", {{.*}}, "-v", "FileToExecuteB" }
|
|
|
|
// this flag allows to compile ptx code with the interpreter instance
|
|
// CUDAHost and CUDADevice must not be true at the same time
|
|
// --cuda-device-only implies -xcuda
|
|
argv[10] = "--cuda-device-only";
|
|
|
|
cling::InvocationOptions IOpts2(argc, argv);
|
|
|
|
IOpts2.CompilerOpts.CUDAHost
|
|
// CHECK-NEXT: (unsigned int) 0
|
|
|
|
IOpts2.CompilerOpts.CUDADevice
|
|
// CHECK-NEXT: (unsigned int) 1
|
|
|
|
// expected-no-diagnostics
|
|
.q
|