Skip to content
Snippets Groups Projects
  1. Feb 08, 2016
  2. Dec 28, 2015
  3. Oct 09, 2015
  4. Sep 24, 2015
  5. Sep 12, 2015
  6. Sep 01, 2015
  7. Aug 25, 2015
  8. Aug 19, 2015
    • Carsten Gräser's avatar
      Add file with prevented cherry-picks · 6539ef5a
      Carsten Gräser authored
      This lists all commits marked tagged as bugfix or release
      that where explicitly not cherry-picked. Possible reasons for this:
      
      * commits from a branch that was also merged to the release
      * commits from a branch where the merge was cherry-picked
      * bugfixes for code new to master
      * commits that where picked but are not recognized as such
      6539ef5a
  9. Aug 03, 2015
  10. Jul 07, 2015
    • Jö Fahlke's avatar
      [release][matrixmarket][ODR] Give the name MatrixMarketImpl to the anonymous · d6769b77
      Jö Fahlke authored
      namespace.
      
      This namespace was probably meant to mark implementation details.  However it
      led to violations of the ODR (one definition rule), and to warnings about
      defined-but-unused functions (see below).
      
      To illustrate the problem consider the function template
      Dune::readMatrixMarket:
      
        template<typename T, typename A, int brows, int bcols>
        void readMatrixMarket(Dune::BCRSMatrix<Dune::FieldMatrix<T,brows,bcols>,A>& matrix,
                              std::istream& istr)
        {
          // ...
          readSparseEntries(matrix, istr, entries, header, NumericWrapper<T>());
        }
      
      The ODR states (§3.2/5):
      
        There can be more than one definition of a [...] non-static function
        template (14.5.6) [...] in a program provided that each definition appears
        in a different translation unit, and provided the definitions satisfy the
        following requirements.  Given such an entity named D defined in more than
        one translation unit, then
      
        - each definition of D shall consist of the same sequence of tokens; and
      
        - in each definition of D, corresponding names, looked up according to 3.4,
          shall refer to an entity defined within the definition of D, or shall
          refer to the same entity, after overload resolution (13.3) and after
          matching of partial template specialization (14.8.3), except that a name
          can refer to a const object with internal or no linkage if the object has
          the same literal type in all definitions of D, and the object is
          initialized with a constant expression (5.19), and the value (but not the
          address) of the object is used, and the object has the same value in all
          definitions of D; and
      
        [...]
      
      This is violated by e.g. both readSparseEntries, which is defined in the
      anonymous namespace.  Since it is not defined within readMatrixMarket, it must
      refer to the same entity in all translation units.  However, its name is
      effectively Dune::<unique>::readSparseEntries, where <unique> is unique to
      each translation unit, and thus it effectively refers to a different entity in
      each translation unit, and the program is ill-formed as soon as move than one
      translation unit does #include <dune/istl/matrixmarket.hh>.
      
      The warnings by g++-4.9 looked like this:
      ======================================================================
      g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../../..  -pthread -I/home/joe/Projekte/pdelab-2.4/dune-common -I/home/joe/Projekte/pdelab-2.4/dune-common -I../../.. -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -DMPIPP_H -DENABLE_MPI=1   -g -O3 -Wall -MT matrixmarkettest-matrixmarkettest.o -MD -MP -MF .deps/matrixmarkettest-matrixmarkettest.Tpo -c -o matrixmarkettest-matrixmarkettest.o `test -f 'matrixmarkettest.cc' || echo './'`matrixmarkettest.cc
      [...]
      In file included from matrixmarkettest.cc:11:0:
      ../../../dune/istl/matrixmarket.hh:501:10: warning: ‘void Dune::{anonymous}::readNextLine(std::istream&, std::ostringstream&, Dune::{anonymous}::LineType&)’ defined but not used [-Wunused-function]
           void readNextLine(std::istream& file, std::ostringstream&, LineType& type)
                ^
      In file included from matrixmarkettest.cc:11:0:
      ../../../dune/istl/matrixmarket.hh:601:19: warning: ‘std::istream& Dune::{anonymous}::operator>>(std::istream&, Dune::{anonymous}::NumericWrapper<Dune::{anonymous}::PatternDummy>&)’ defined but not used [-Wunused-function]
           std::istream& operator>>(std::istream& is, NumericWrapper<PatternDummy>& num)
                         ^
      ======================================================================
      
      (cherry picked from commit 1a19f1c1)
      Signed-off-by: default avatarCarsten Gräser <graeser@dune-project.org>
    • Jö Fahlke's avatar
      [release][matrixmarket] Remove unused function readNextLine(). · 583e8a45
      Jö Fahlke authored
      
      The function is in an anonymous namespace, and it is used nowhere inside
      dune-istl.
      
      (cherry picked from commit c2a41b1c)
      Signed-off-by: default avatarCarsten Gräser <graeser@dune-project.org>
      583e8a45
    • Jö Fahlke's avatar
      [release] Fix ignore lists. · 65b2412e
      Jö Fahlke authored
      
      (cherry picked from commit 2ee97f2a)
      Signed-off-by: default avatarCarsten Gräser <graeser@dune-project.org>
      65b2412e
  11. Jun 25, 2015
    • Andreas Nüßing's avatar
      [bugfix] include the matrixmarket header to handle default argument · 012dba1a
      Andreas Nüßing authored
      
      The standard states (8.3.6/4) that adding default arguments in later
      function declarations are only valid for non-template functions.
      In matrixmarket.hh, the function template loadMatrixMarket is declared
      and a default argument for the last parameter is provided. In
      owneroverlapcopy.hh, OwnerOverlapCopyCommunication contains a friend
      declaration of loadMatrixMarket without the default parameter. If now
      owneroverlapcopy.hh is included before matrixmarket.hh, the friend
      declaration is the first declaration and the default parameter in
      matrixmarket.hh is invalid.
      By including matrixmarket.hh in owneroverlapcopy.hh, we make sure that
      the declaration which provides the default argument is always the first
      one.
      
      (cherry picked from commit 925dbac3)
      Signed-off-by: default avatarCarsten Gräser <graeser@dune-project.org>
      012dba1a
    • Markus Blatt's avatar
      [release] Do not assume a symmetric sparsity pattern in SymmetricDependency. · a94841ea
      Markus Blatt authored
      
      Previously, we assumed that if a_{ij} is stored in the sparse matrix
      then a_{ji} must be stored also and used mat[i][j] to access. If the entry
      was not stored then an exception somewhere in basearray.hh was thrown.
      Unfortunately knowing the cause for this exception is insider knowledge,
      seldomly leaked ;). In addition there is now reason to throw an expection here.
      
      With this commit we the find method on the row to search for the entry a_{ji}.
      If it is not present we simply treat it as being zero.
      
      (cherry picked from commit 05c0a63a)
      Signed-off-by: default avatarCarsten Gräser <graeser@dune-project.org>
      a94841ea
  12. Jun 10, 2015
Loading