Commit Graph

4079 Commits

Author SHA1 Message Date
Philippe Canal
22952b8f72 Improve the handling of qualified named (i.e. elaborated type) especially when they also have
qualifiers (const std::string) in template arguments.
Fix the handling of default template argument that are not a type.

No longer drop any default argument except for STL collection (as needed by ROOT I/O).

This fixes support of (for example):
#pragma link C++ class std::pair<const std::string,int>+;
#pragma link C++ class ROOT::TArrayProxy<ROOT::TArrayType<double> >+;
 (which is ROOT::TArrayProxy<ROOT::TArrayType<double,0> >)


git-svn-id: http://root.cern.ch/svn/root/trunk@46188 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-25 19:35:24 +00:00
Axel Naumann
afd46ea54a Rename getMangledName() into mangleName().
git-svn-id: http://root.cern.ch/svn/root/trunk@46147 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 15:20:19 +00:00
Axel Naumann
fe430cd40d Add tests for Interpreter::getAddressOfGlobal().
Fix it for the JIT case.


git-svn-id: http://root.cern.ch/svn/root/trunk@46146 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 15:16:36 +00:00
Axel Naumann
a23e654580 Also suppress warning about unused comparisons.
git-svn-id: http://root.cern.ch/svn/root/trunk@46142 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 13:53:23 +00:00
Axel Naumann
a6c25495ce Spelling
git-svn-id: http://root.cern.ch/svn/root/trunk@46141 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 13:52:52 +00:00
Axel Naumann
adcf034af3 Enable Modules by default for cling.
git-svn-id: http://root.cern.ch/svn/root/trunk@46140 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 13:52:26 +00:00
Axel Naumann
621c0173c2 Cache MangleContext as a private member of the interpreter, so we don't have to re-create it all the time.
Implement JITed version of ExecutionContext::getAddressOfGlobal(), which now also needs a Module.


git-svn-id: http://root.cern.ch/svn/root/trunk@46139 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 12:11:46 +00:00
Axel Naumann
6323e0e50c Implement Interpreter::getAddressOfGlobal(const clang::NamedDecl*) (test comes "in a minute")
Factor out mangling into Interpreter::getMangledName().
Spelling.


git-svn-id: http://root.cern.ch/svn/root/trunk@46136 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-24 09:57:43 +00:00
Philippe Canal
f191b6097c fix typo
git-svn-id: http://root.cern.ch/svn/root/trunk@46132 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-22 21:56:36 +00:00
Philippe Canal
fcf8c7fa66 In Transform::GetPartiallyDesugaredType also handle the case where
we are given a qualified typedef (the first node is 'Elaborated' rather
than Typedef), for example ROOT::Math::TDataPoint1D.

Also properly handle the case when the scope of the typedef's underlying
type and the scope of the typedef are different.  In the case their are
the same, keeping the version given as input (after 'normalizing).

Prevent the desugaring of _any_ typedef declared within the std namespace
(for now hardcoded in AST.cpp) to avoid exposing to ROOT implementation
details (this is a kind of replacement for CINT's customized STL header)


git-svn-id: http://root.cern.ch/svn/root/trunk@46131 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-22 21:30:24 +00:00
Axel Naumann
842a4520c9 Fix initialization order for "new" binutils that use ctors-in-init-array, by passing -Wl,--no-ctors-in-init-array.
See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770>.
This enforces llvm (at the end of the link line) globals to be initialized before ROOT's, pretty healthy for new TInterpreter in gROOT's initializer.


git-svn-id: http://root.cern.ch/svn/root/trunk@46055 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-19 14:12:07 +00:00
Philippe Canal
d754a4e262 Do not use standard desugaring if we need to have the full qualification
git-svn-id: http://root.cern.ch/svn/root/trunk@46047 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-19 12:39:06 +00:00
Axel Naumann
fff6b6404c Remove optimization flags coming from llvm build
git-svn-id: http://root.cern.ch/svn/root/trunk@46039 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-19 09:50:56 +00:00
Axel Naumann
433174240e Do not update LastKnownGoodLLVMSVNRevision.txt automatically; this will be done as part of the ROOT vendor branch import / update.
git-svn-id: http://root.cern.ch/svn/root/trunk@46026 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 15:28:45 +00:00
Vassil Vassilev
c38e4407ef Use better names for the internal functions so that they are more visible while
debugging.


git-svn-id: http://root.cern.ch/svn/root/trunk@46024 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 15:14:58 +00:00
Vassil Vassilev
3bcd83bf79 Cleanup redundant includes.
git-svn-id: http://root.cern.ch/svn/root/trunk@46023 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 15:08:22 +00:00
Vassil Vassilev
5bc1387d38 Remove old lookup functions from the Interpreter. Now we have dedicated object
for string-based lookup (LookupObject) and cling::utils::Lookup class for quick
simple lookups.

This checkin slows down the testsuite because there is no LookupHelper::findVarDecl
and we have to #include a lot of headers at runtime.


git-svn-id: http://root.cern.ch/svn/root/trunk@46022 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 15:05:53 +00:00
Vassil Vassilev
7c08e8c678 Get rid of interpreter pointer in one of the transformers.
git-svn-id: http://root.cern.ch/svn/root/trunk@46017 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 13:13:22 +00:00
Vassil Vassilev
f2d691971f Get rid of interpreter pointer in one of the transformers. More to follow.
git-svn-id: http://root.cern.ch/svn/root/trunk@46016 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 12:46:30 +00:00
Vassil Vassilev
48cd1f6b57 With r164028 in LLVM we can remove the helper class.
git-svn-id: http://root.cern.ch/svn/root/trunk@46012 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-18 11:45:00 +00:00
Axel Naumann
d94bf9799c Update to llvm / clang to r164028 (vendor r46002-46004).
(Parser patch integrated into clang proper)


git-svn-id: http://root.cern.ch/svn/root/trunk@46008 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-17 14:06:59 +00:00
Axel Naumann
3c634d345e After our r164028 in clang we can access all we need; this patch is thus not needed anymore.
git-svn-id: http://root.cern.ch/svn/root/trunk@46001 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-17 13:18:39 +00:00
Axel Naumann
752b4d52dd Work on Savannah #97347:
* make is needed (before make install) to copy tablegen files into install area.
* Rewrite has been split and renamed.
* Have cling/Module.mk depend on llvm-config, such that when it gets built CXXFLAGS etc gets re-read.


git-svn-id: http://root.cern.ch/svn/root/trunk@45920 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-10 13:46:36 +00:00
Axel Naumann
8ec0986618 Fix uninitialized exit (thanks, GCC).
Mark test for PCM / redecl of templates as XFAIL until fixed.
Update last known good to the one used in ROOT.


git-svn-id: http://root.cern.ch/svn/root/trunk@45890 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-07 06:56:06 +00:00
Axel Naumann
27ed0045e2 Merge r45833, r45837 that got lost during move of cling
git-svn-id: http://root.cern.ch/svn/root/trunk@45872 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 15:41:25 +00:00
Axel Naumann
268a844e25 Re-apply r45839; got lost during move of cling
git-svn-id: http://root.cern.ch/svn/root/trunk@45870 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 15:35:00 +00:00
Axel Naumann
286910cee0 Reapply Vassil's r45838 which got lost during the move of cint/cling to interpreter/
git-svn-id: http://root.cern.ch/svn/root/trunk@45868 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 15:27:17 +00:00
Axel Naumann
3be68d4894 Create binary with exports on cygwin.
git-svn-id: http://root.cern.ch/svn/root/trunk@45866 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 15:01:12 +00:00
Axel Naumann
05ba8a3a07 Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.)
git-svn-id: http://root.cern.ch/svn/root/trunk@45844 27541ba8-7e3a-0410-8455-c3a389f83636
2012-09-05 09:37:39 +00:00