1532 Commits

Author SHA1 Message Date
Vassil Vassilev
7b9f839ef5 Get the ptr type of a non reference type, in order to meet the special printValue/Type function convention. 2014-05-20 13:54:57 +02:00
Vassil Vassilev
afae38d98c Use ticks instead of quotes when printing a single char. 2014-05-20 13:54:57 +02:00
Vassil Vassilev
a6eedd674b Extract out common implementation. 2014-05-20 10:40:58 +02:00
Vassil Vassilev
66faddd2db Style. 2014-05-20 10:40:57 +02:00
Vassil Vassilev
37f64ff956 Typo. 2014-05-19 16:27:54 +02:00
Vassil Vassilev
7ae23a4831 Disable C specific code, it needs more work in order to make the value printing in C work. 2014-05-19 16:27:54 +02:00
Vassil Vassilev
729d8da586 Inconsistently to named macros with return stmts we don't print the result of unnamed macros. 2014-05-19 16:05:57 +02:00
Vassil Vassilev
e5a04f9375 Expand 'properly' VPAuto into whatever the value printer synthesizer desided to do. 2014-05-19 16:05:57 +02:00
Vassil Vassilev
5deb236214 Dump only if value printing was enabled. Add assertion. 2014-05-19 16:05:57 +02:00
Vassil Vassilev
68d86e2537 Add proper assert. 2014-05-19 16:05:57 +02:00
Vassil Vassilev
58b76265fa Forget about ValuePrinterInfo. 2014-05-18 20:45:56 +02:00
Vassil Vassilev
711e39e092 Pass in the transaction ptr, whoose value we print out. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
5bdf863d5f Do not dump for void, resetting the value of the value. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
5167e8f992 Improve the C version of the value printing. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
e1367a1f17 Add a simple overload candidate selector. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
10259542d2 Add some future reference for the C runtime. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
9b5c844b9b Change the wrapper signature to take a void* (useful for the C mode) 2014-05-18 18:08:59 +02:00
Vassil Vassilev
46636a18d3 No need to pass the interpreter. We have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
28de2c1cc2 No need to pass in the ASTContext, we have it. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
47a0d9e5e8 No need of complex indirections and 'fancy' function signatures. Simplify. 2014-05-18 18:08:59 +02:00
Vassil Vassilev
3dc52b1e5f No need of 'public' StreamClingValue. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
3e5af816aa No need to synthesize anything anymore. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
3dfc56637b Get rid of redundant class. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
c86fbc27b9 Rewire the dumping on cling::Value to its new implementation.
Dump cling::Value within setNoAlloc routines because this is its lifespan,
otherwise gets deleted if nobody requested it. I.e it was created only for
value printing purposes.

Dump cling::Value outside setWithAlloc because the actual value is not put inside
until the call to ::new finishes, thus we need to do it outside, i.e in EvaluateInternal.

Switch on the ValueExtraction synthesizer even when 'just' value printing. We
depend on it. Must be factored out properly in one class.

Stop attaching the value printing template magic, which didn't work in some cases.

Update the ref file, because now there is better type information.

Adapt the user-defined printout functions (TDatime).
2014-05-18 18:08:58 +02:00
Vassil Vassilev
245f098fe1 Record the outcome of VPAuto (auto detection if a value should be printed out). 2014-05-18 18:08:58 +02:00
Vassil Vassilev
214376a899 Implement cling::Value dump as a 'static' operation.
We need to look for a user overload of cling::printValue and printType and give
the control to it. If not specified, fallback into the default implementation.
2014-05-18 18:08:58 +02:00
Vassil Vassilev
e587158b03 Add the Interpreter* to the cling::Value. We can afford it, because its actual size is 24 and it anyway gets aligned to 32 (except on a few old washing machines). 2014-05-18 18:08:58 +02:00
Vassil Vassilev
7b18586fa9 Extend the lifetime of the temporaries up to the function call using them.
Results in move of ExprWithCleanups, which is responsible for the lifetime
of the temporaries.
2014-05-18 18:08:58 +02:00
Vassil Vassilev
39f42b02cd Instead of passing the Expr*, which is being value printed, pass the Interpreter* and deduce the expr. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
cb29e6e529 Add printing utility functions to the cling::Value. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
db0c7200db Use the short more meaningful function. 2014-05-18 18:08:58 +02:00
Vassil Vassilev
9b009e02a6 Hide codegen from external users. 2014-05-18 18:08:58 +02:00
Axel Naumann
0a0a1d6cbd Fix doxygen. 2014-05-16 18:35:58 +02:00
Axel Naumann
b29245024c Ignore #line directives in ShouldWrapInput(). 2014-05-15 17:53:03 +02:00
Pere Mato
8d43694e85 Another attempt for CLING_VERSION with proper scape characters (CMake) 2014-05-14 15:39:01 +02:00
Axel Naumann
af66248191 Accessor to current transaction, useful e.g. for callbacks. 2014-05-14 15:32:58 +02:00
Philippe Canal
f7aaac2c07 Avoid the risk of type creation if we can 2014-05-14 09:03:56 +02:00
Philippe Canal
d1e545b60d In Partial desugar add support for array type 2014-05-14 09:03:56 +02:00
Pere Mato
45635cf4a2 Pass the CLING_VERSION as compiler flag and remove it from cling_compiledata.h file 2014-05-13 16:47:56 +02:00
Vassil Vassilev
764f126c70 Simplify. 2014-05-09 15:28:06 +02:00
Vassil Vassilev
5bea5d34ec Add the notion of version in both build systems. Remove redundant code. 2014-05-09 14:52:57 +02:00
Axel Naumann
961cc8d7bf Add protection against missing CodeGen. 2014-05-06 12:18:00 +02:00
Lukas Vacek
ce008b07fc Fix input files processing (cling foo.c should work now) 2014-05-02 19:01:01 +02:00
Axel Naumann
b8c48f15f8 CLING_CXXABI* is unused for MSVC. 2014-04-30 15:27:01 +02:00
Bertrand Bellenot
a39879b286 Check in the system registry for the version of Visual Studio with which we compiled cling (instead of the highest version) 2014-04-30 15:27:01 +02:00
Bertrand Bellenot
a172bc0e07 Fix some of the error messages when starting cling.exe on Windows
Fixes the following error messages:
The system cannot find the path specified.
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
    echo | LC_ALL=C C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe  /DWIN32 /D_WINDOWS /W3    -xc++ -E -v - 2>&1 >/dev/null | awk '/^#include
 </,/^End of search/{if (!/^#include </ && !/^End of search/){ print }}' | grep -E "(c|g)\+\+"
results in
The system cannot find the path specified.
with exit code 255
Warning in cling::CIFactory::createCI():
  C++ ABI check not implemented for this standard library

Note there are still a few remaining errors at startup time:

error: cannot mangle RTTI descriptors for type 'exception' yet
error: cannot mangle the name of type 'exception' into RTTI descriptors yet

Apparently coming from the following statement (at line 284 in Interpreter.cpp, in Interpreter::IncludeCXXRuntime()):

    declare("#include \"cling/Interpreter/ValuePrinter.h\"");
2014-04-30 15:27:01 +02:00
Axel Naumann
5a63dff8e9 Survive lookup in a forward declared context. 2014-04-29 17:47:58 +02:00
Axel Naumann
8b60eaf361 Survive and signal non-unique lookup results. 2014-04-29 17:47:58 +02:00
Axel Naumann
04d0d17f3e Protect from missing CodeGen. 2014-04-29 17:47:57 +02:00
Philippe Canal
94219bdc83 Work-around transaction unload not informing MetaSema.
When a file is unloaded its entry should be removed from MetaSema::m_WaterMarks.
At the moment the corresponding callback is not implemented.

Instead, we also record the relation <Transaction*,Entry*>, so that upon
MetaSema requesting an unload, we can clean-out the corresponding data
from m_WaterMarks.

In addition, to catch the case where the target transaction (unloadPoint)
is not longer present we issue an error and do not unload anything.
2014-04-29 03:46:59 +02:00