Tpetra::Distributor: Inheriting from VerboseObject<Distributor> causes crash in Import ctor w/ various Intel compiler versions
Created by: mhoemmen
@trilinos/tpetra @amklinv
With Intel 15.0.4 and Intel 16, using either Intel MPI or OpenMPI 1.8, the Tpetra::Import constructor crashes. Micah chased this down and found out that the Tpetra::Distributor instance that Import creates inherits from Teuchos::VerboseObjectTpetra::Distributor (looks weird, I know, but this is how one is supposed to use VerboseObject), and that VerboseObject's constructor was getting into a weird multiply segfaulting infinite loop when calling initializeVerboseObjectBase().
Some versions of the Intel compiler have trouble with name resolution in certain cases. On a hunch, I made Distributor no longer inherit from VerboseObject, and that fixed the problem. Yay!
Thus, the fix is to remove Distributor's inheritance from VerboseObject. This was pretty easy to do but I want to make sure that Distributor's ParameterList still accepts a "VerboseObject" sublist (see e.g., line 430 of Tpetra_Distributor.cpp).