5207 Commits

Author SHA1 Message Date
Axel Naumann
ee70e6bee3 tryCode only makes sense if a shared library is tried.
Fixes "cond jump dep on uninit var" / cling test failure.


git-svn-id: http://root.cern.ch/svn/root/trunk@47345 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-16 13:39:09 +00:00
Axel Naumann
0f6a4cc921 Doxygen is unhappy about the hash.
git-svn-id: http://root.cern.ch/svn/root/trunk@47344 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-16 13:27:49 +00:00
Axel Naumann
5491fc88b6 Use the full path name to the shared library when registering it, not just "libGPad".
git-svn-id: http://root.cern.ch/svn/root/trunk@47342 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-16 11:30:31 +00:00
Vassil Vassilev
20180ac047 Temporarily!? publish the parser.
git-svn-id: http://root.cern.ch/svn/root/trunk@47340 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 23:51:52 +00:00
Axel Naumann
28dc13c51e Don't try to #include a file for which we know it's a dynamic library (that just failed to load) or a bitcode file.
Fixes bug #98798.
Print error message from loader ("cling::Interpreter::tryLinker(): .../libFoo.so: undefined symbol: bar") on dlopen failure.


git-svn-id: http://root.cern.ch/svn/root/trunk@47339 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 21:36:41 +00:00
Axel Naumann
7d5ed9e511 Define result of ExecutionContext::executeFunction().
Return it all the way through Interpreter.
Fixes bug #98837.


git-svn-id: http://root.cern.ch/svn/root/trunk@47337 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 20:55:43 +00:00
Paul Russo
f8b1205d19 Use the DestroyTemplateIdAnnotationsRAIIObj to cleanup
template ids after a parse.


git-svn-id: http://root.cern.ch/svn/root/trunk@47335 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 20:19:21 +00:00
Axel Naumann
a5ab389c14 These meta commands request a dump of the current file*s*: use plural.
git-svn-id: http://root.cern.ch/svn/root/trunk@47334 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 19:59:26 +00:00
Axel Naumann
226b360b15 Rename LoadLibResult constants to start with 'k'.
Enable kLoadLibExists case in TCintWithCling.

Collect statistics about loaded files.
Give access to that through .file; rename SourceManager dump to fileEx.

Documentation.

(Sorry, should have been three patches.)


git-svn-id: http://root.cern.ch/svn/root/trunk@47330 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 18:23:11 +00:00
Axel Naumann
6379c2a21d Use the proper extention and you will be applied.
git-svn-id: http://root.cern.ch/svn/root/trunk@47328 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 18:11:08 +00:00
Axel Naumann
e8d7963b97 Split dumping and extraction of IncludePaths (aka HeaderSearchOpts).
Call it like this:
SmallVector<std::string, 100> inclPaths;
interp->GetIncludePaths(inclPaths, false, true);
to get the include paths prefixed with -I, but no system onclude paths.

Mark include paths supplied via AddIncludePath() as IsUserSupplied.


git-svn-id: http://root.cern.ch/svn/root/trunk@47325 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 17:07:44 +00:00
Axel Naumann
d5f237f819 Move "library load result" enum to the other enum.
Make tryLinker a member function now that it uses the collection of loaded libraries.
Implement "was alreday loaded" as possible loadLibrary() result.


git-svn-id: http://root.cern.ch/svn/root/trunk@47324 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 16:41:30 +00:00
Vassil Vassilev
3b037537f4 The test symbol provider should react on empty lookup result (Thus avoid the ambiguity coming from the extra call put in clang for autoloading).
git-svn-id: http://root.cern.ch/svn/root/trunk@47323 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 16:41:10 +00:00
Axel Naumann
956567cf9e Make DynamicLibrary sortable.
git-svn-id: http://root.cern.ch/svn/root/trunk@47322 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 16:39:23 +00:00
Axel Naumann
8616cc7bea Split loadFile() into two and we have a new interface loadLibrary()!
Prepare new result "library was alreday loaded" - will be implemented if we actually need it.


git-svn-id: http://root.cern.ch/svn/root/trunk@47319 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 14:50:59 +00:00
Vassil Vassilev
b7beb7fabe That part of the patch is in separate patch now.
git-svn-id: http://root.cern.ch/svn/root/trunk@47317 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 14:25:02 +00:00
Vassil Vassilev
e57bbc6e10 Patch allowing if the found decl is fwd declare it asks the autoloader to try to find full one.
git-svn-id: http://root.cern.ch/svn/root/trunk@47301 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 01:42:17 +00:00
Vassil Vassilev
c3c5d1e11a Use separate parser for our string-based lookup. This in general is safer because
we don't need pin-point precision while we recover the lookup parser from lookup.


git-svn-id: http://root.cern.ch/svn/root/trunk@47298 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 00:11:14 +00:00
Vassil Vassilev
8c3ce66b05 Patch allowing clang to interact with multiple parsers recursively.
git-svn-id: http://root.cern.ch/svn/root/trunk@47296 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 00:08:23 +00:00
Vassil Vassilev
d83f3a9bec Needed changes in clang to support *almost* autoloading.
git-svn-id: http://root.cern.ch/svn/root/trunk@47294 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-15 00:05:43 +00:00
Paul Russo
ecbd7d40af Sigh, fix revision v47289, it should have been
the type lowering fix, but instead it was the
template id cleanup fix.


git-svn-id: http://root.cern.ch/svn/root/trunk@47292 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 23:08:01 +00:00
Vassil Vassilev
29b9270e50 Remove unused code.
git-svn-id: http://root.cern.ch/svn/root/trunk@47291 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 22:07:42 +00:00
Vassil Vassilev
76975bf2da Improve cling's transaction model. For now a bit hackish because it doesn't
actually support proper nesting of transactions.
(begin|end)Transaction return the transaction began or ended, which simplifies
interaction in case of nested transactions (coming from the autoloading)

Implement new function which transforms the single-linked list into a vector of
transactions for debugging purposes only.


git-svn-id: http://root.cern.ch/svn/root/trunk@47290 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 22:06:58 +00:00
Paul Russo
418d601061 Change this to a diff of only interpreter/llvm/src
to make EC happy.


git-svn-id: http://root.cern.ch/svn/root/trunk@47289 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 21:39:10 +00:00
Paul Russo
afe62b76cb Use CodeGen to lower an AST type to a LLVM type.
git-svn-id: http://root.cern.ch/svn/root/trunk@47285 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 21:23:31 +00:00
Vassil Vassilev
d49cd5c090 The parent of a nested thansaction is definitely not itself.
git-svn-id: http://root.cern.ch/svn/root/trunk@47284 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 20:29:57 +00:00
Axel Naumann
b288115cb2 Forgot Unix/DynamicLibrary.inc again...
git-svn-id: http://root.cern.ch/svn/root/trunk@47275 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 16:02:59 +00:00
Axel Naumann
5fb988d5bc Fix check for "had been loaded"; Windows.
git-svn-id: http://root.cern.ch/svn/root/trunk@47271 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 15:33:26 +00:00
Axel Naumann
785d0248b6 Test step one of patch series.
git-svn-id: http://root.cern.ch/svn/root/trunk@47269 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 15:03:52 +00:00
Axel Naumann
6ed50f2718 Forgot Unix/DynamicLibrary.inc
git-svn-id: http://root.cern.ch/svn/root/trunk@47264 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 14:39:48 +00:00
Axel Naumann
4cc0b70524 Fix Windows, hopefully.
git-svn-id: http://root.cern.ch/svn/root/trunk@47261 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 13:49:01 +00:00
Axel Naumann
deec25c0aa Add unload; test on Windows.
git-svn-id: http://root.cern.ch/svn/root/trunk@47260 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-14 13:05:10 +00:00
Vassil Vassilev
9fbe6096c9 Add some support for nested transactions, needed by the upcoming patch of the
autoloading. There we need to subparse some content that naturally should end up
as nested transaction.


git-svn-id: http://root.cern.ch/svn/root/trunk@47247 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 23:52:30 +00:00
Axel Naumann
0ab4535b91 Windows: almost there.
git-svn-id: http://root.cern.ch/svn/root/trunk@47244 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 21:21:17 +00:00
Axel Naumann
7c5a1820ae Fix Windows, third try, grr.
git-svn-id: http://root.cern.ch/svn/root/trunk@47243 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 20:49:01 +00:00
Axel Naumann
e3bc7e42c5 Fix Windows, second try.
git-svn-id: http://root.cern.ch/svn/root/trunk@47242 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 20:35:39 +00:00
Axel Naumann
f04332f04f Fix Unix!
git-svn-id: http://root.cern.ch/svn/root/trunk@47241 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 20:26:58 +00:00
Axel Naumann
e47c55ce19 Fix Windows, first try.
git-svn-id: http://root.cern.ch/svn/root/trunk@47240 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 20:18:16 +00:00
Axel Naumann
d4ce7682f2 Temporarily put to-be-removed SearchForAddressOfSpecialSymbol.cpp back int CMakeLists as patch only empties it.
git-svn-id: http://root.cern.ch/svn/root/trunk@47239 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 19:28:50 +00:00
Axel Naumann
156d1b9b91 Test new dynamic library code layout on all platforms.
git-svn-id: http://root.cern.ch/svn/root/trunk@47237 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-13 19:14:45 +00:00
Axel Naumann
169edbd5a0 Complain for typedefs inside functions.
git-svn-id: http://root.cern.ch/svn/root/trunk@47204 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 17:49:48 +00:00
Axel Naumann
d94e4aae9c Don't #include Type.h in ValuePrinterInfo.h - this will be needed at runtime, too.
Instead just allocate enough data member space to store a QualType (asserting that it really is enough), and cast to and from as needed.
Ugly but it works, and it's sufficiently internal.


git-svn-id: http://root.cern.ch/svn/root/trunk@47191 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 14:58:49 +00:00
Axel Naumann
45adbab8dc Convert away from pointer before converting to T.
Repairs code for T == double.


git-svn-id: http://root.cern.ch/svn/root/trunk@47184 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 11:49:08 +00:00
Axel Naumann
394e5abae3 Refine case of invalid value: print the address of the value object.
git-svn-id: http://root.cern.ch/svn/root/trunk@47180 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 10:33:15 +00:00
Axel Naumann
f39792a8c9 Implement StoredValueRef::dump() using the ValuePrinter.
git-svn-id: http://root.cern.ch/svn/root/trunk@47179 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 10:27:50 +00:00
Axel Naumann
340e954bbe ValuePrinterInfo doesn't need to store the Expr but the QualType; shortens signatures.
Factor out StoredValueRef streaming, expose so it can later be used by StoreValueRef::dump().


git-svn-id: http://root.cern.ch/svn/root/trunk@47178 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-12 10:27:13 +00:00
Axel Naumann
e2378406a1 Array printing refinements (needed by r47175, oops.)
git-svn-id: http://root.cern.ch/svn/root/trunk@47176 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-11 17:18:15 +00:00
Axel Naumann
f0f33b18b4 Test array printing
git-svn-id: http://root.cern.ch/svn/root/trunk@47175 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-11 17:17:27 +00:00
Axel Naumann
d0e7ca647f Determine the resType from the function decl.
git-svn-id: http://root.cern.ch/svn/root/trunk@47174 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-11 17:06:00 +00:00
Axel Naumann
bb0cacfb13 More rvalue-const removal
git-svn-id: http://root.cern.ch/svn/root/trunk@47173 27541ba8-7e3a-0410-8455-c3a389f83636
2012-11-11 16:38:14 +00:00