Harmonized a couple of R_ASSERTs
Fixed CID 52067 and retval of PollForNewWorkers()
Merge pull request #4 from dberzano/master-proof-dynamic-workers

Coverity fix and better consistency checks
Harmonized a couple of R_ASSERTs
Fixed CID 52067 and retval of PollForNewWorkers()
Merge branch 'master' of github.com:gganis/root
Less verbosity
Infrastructure for selectionXML2TClass attributes transfer

Infrastructure to have in TClass the properties specified in the
selection XML in place.
Workflow:
 o Add to the AST the class properties as AnnotatedAttr
 o Loop on class members and vars and add properties as AnnotatedAttr. Convention chosen:
   o transient : "//!" (good old tradition)
   o general : "PROPERTYNAME@@@PROPERTYVALUE"
 o Generate the code in the dictionary to read back these properties from the AST and modify TClass accordingly

The AST was chosen as the medium to carry properties to the dictionary generation because when PCMs are there, the information will be read back at library initialisation. Right now, since we deal with headers, the dictionaries carry the information.
The infrastructure allows to do all kind of manipulations concerning TClass according to the properties.
With this commit, only the "transiency" of members has been addressed.
Reasonable default verbosity after development burst
Fix TClingTypedefInfo::Init to actually support typedef.

Replace the call to findScope by a call to findType
as not all typedef are scope and findScope (without
the optional argument) strips the typedef anyway!
Fix TMetaUtils::GetFullyQualifiedType in case the type is a RecordType of template specialization
Restore Parser state before committing the associated transaction.

In LookupHelper::findType, we switch the RAII for the transaction
and for the parser so that the parser state is restored before
the transaction is committed.   This fixes the execution of

 gROOT->GetListOfTypes()->FindObject("deque<ROOT::TTreeReaderValueBase*>::_Alloc_value_type"); gROOT->GetListOfTypes()->FindObject("deque<ROOT::TTreeReaderValueBase*>::const_iterator");

When both statement were in the same transaction, without this
change, the 2nd one would return (incorrectly) zero.
Replace the container used for GetListOfTypes with one with lookup.

Rather than filling the ListOfTypes with all the known typedefs
we now fill the list on demand by replace FindObject with
a routine that does a lookup if the typedef is not yet in the list.

This improves the behavior as the FindObject now finds the
typedef even if the spelling is not exactly the normalized
spelling.

This will reduce the memory used and also avoid having to
deserialize all decl that might (or might not) contains
typedefs.

In addition, the existing implemenation had several (fixeable)
deficiency (using getNameAsString rather than the routine
creating the normalized name) lead to duplicate entries
being created (because it looked for nestedtype rather than
outer::nestedtype).

More over it was missing some fo the typedefs (like for example
TOrdCollection::Iterator_t).   Whenever HandleDeclNew saw
TOrdCollection it was always empty (HandleDeclNew was called 4 times
with TOrdCollection during the startup).

Add TInterpreter::TypedefInto_Factory(const char*name)
Remove obsolte 'load' of list of types. Update doc
Now that GetListOfTypes has a lookup, no need for shortening the name
Merge in the ListOfTypes replacement.
Some NamedDecl (constructors and desctructors) do not have a name.

Since the code does not (yet) use the name for anything here, remove
the call to getName() which provokes an assert in clang if the decl
is a constructor or a destructor.
Add failing test for Baozeng to fine tune the NullDeref impl.
Improve style.
Add a reproducer in the test of a current issue for Baozeng to look into.

This happens probably because we don't iterate over the redecl chains and thus
we don't pickup the attribute.