clang-tidy: readibility redundant
authorRoland Schulz <roland.schulz@intel.com>
Tue, 26 Jun 2018 06:10:06 +0000 (23:10 -0700)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 29 Jun 2018 06:33:53 +0000 (08:33 +0200)
readability-redundant-control-flow (return at end of void fn)
readability-static-definition-in-anonymous-namespace
readability-redundant-member-init

All three remove redundant information.

Manual changes in:
src/gromacs/utility/alignedallocator.cpp (no auto fix)
src/gromacs/utility/futil.cpp (incorrect auto fix)

Change-Id: I807815f2e985f6ff612cdc96f6585ff524da4e54

27 files changed:
src/gromacs/CMakeLists.txt
src/gromacs/awh/bias.cpp
src/gromacs/awh/biaswriter.cpp
src/gromacs/fileio/tngio.cpp
src/gromacs/gmxana/gmx_awh.cpp
src/gromacs/gmxana/gmx_potential.cpp
src/gromacs/gmxana/gmx_tune_pme.cpp
src/gromacs/gmxlib/nonbonded/nonbonded.cpp
src/gromacs/gmxpreprocess/genhydro.cpp
src/gromacs/gmxpreprocess/insert-molecules.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/hardware/hardwaretopology.cpp
src/gromacs/listed-forces/bonded.cpp
src/gromacs/listed-forces/listed-forces.cpp
src/gromacs/mdlib/mdatoms.cpp
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdtypes/state.cpp
src/gromacs/swap/swapcoords.cpp
src/gromacs/taskassignment/findallgputasks.cpp
src/gromacs/taskassignment/reportgpuusage.cpp
src/gromacs/taskassignment/resourcedivision.cpp
src/gromacs/taskassignment/taskassignment.cpp
src/gromacs/trajectory/energyframe.cpp
src/gromacs/trajectoryanalysis/modules/angle.cpp
src/gromacs/utility/alignedallocator.cpp
src/gromacs/utility/futil.cpp
src/gromacs/utility/qsort_threadsafe.cpp

index 099c42bb414d5786148c35e155fc2979aa033c21..35ee6657cf192a25b37efe279da5d2b88651face 100644 (file)
@@ -282,9 +282,9 @@ if (GMX_CLANG_TIDY)
        bugprone-*,misc-*,readability-*,performance-*,mpi-*,\
        -misc-misplaced-widening-cast,-readability-named-parameter,\
        -misc-suspicious-string-compare,\
-       -readability-redundant-control-flow,-performance-unnecessary-value-param,\
-       -readability-static-definition-in-anonymous-namespace,-misc-suspicious-missing-comma,\
-       -readability-redundant-member-init,-misc-misplaced-const,\
+       -performance-unnecessary-value-param,\
+       -misc-suspicious-missing-comma,\
+       -misc-misplaced-const,\
        -misc-incorrect-roundings,-misc-macro-parentheses,-readability-function-size,-readability-else-after-return,\
        -readability-inconsistent-declaration-parameter-name,-misc-throw-by-value-catch-by-reference,\
        -readability-non-const-parameter,-readability-implicit-bool-conversion;-warnings-as-errors=*;-fix")
index 4aeae9c0fa5aaa7b2c9fa234fb03163f1002a6ab..1664e3c291ebff7bb95e238eda6b17ae6b0873da 100644 (file)
@@ -270,7 +270,7 @@ Bias::Bias(int                             biasIndexInCollection,
     state_(awhBiasParams, params_.initialHistogramSize, dimParams_, grid_),
     thisRankDoesIO_(thisRankWillDoIO == ThisRankWillDoIO::Yes),
     biasForce_(ndim()),
-    alignedTempWorkSpace_(),
+
     tempForce_(ndim()),
     numWarningsIssued_(0)
 {
index 06a021fde7359b970b48e29a93442bfda745c3a7..3ff903819dab76d2f9dfa42b43e0b6eb103d3080 100644 (file)
@@ -66,7 +66,7 @@ namespace
  * the iterator of this map, which is based on the enum value
  * (and matches the order of the lines below).
  */
-static const std::map<AwhOutputEntryType, Normalization> outputTypeToNormalization =
+const std::map<AwhOutputEntryType, Normalization> outputTypeToNormalization =
 {
     { AwhOutputEntryType::MetaData,               Normalization::None },
     { AwhOutputEntryType::CoordValue,             Normalization::Coordinate },
index b07f82f4383efbb2a76d524c9d909aef31485a90..be13c2a6a92bdb32580a6f6d4d90f2e61b04074b 100644 (file)
@@ -1268,7 +1268,6 @@ convert_array_to_real_array(void       *from,
             gmx_incons("Illegal datatype when converting values to a real array!");
             return;
     }
-    return;
 }
 
 real getDistanceScaleFactor(gmx_tng_trajectory_t in)
index 9d1317cd38b976aa89ba8bd7a55b6388c4308e59..0c1fe33e9cb4353c2811e9dee576c6f2d8ad1139 100644 (file)
@@ -256,7 +256,7 @@ enum class OutputFileType
  * the output that mdrun writes. It would be better to define these
  * values in a single location.
  */
-static constexpr int maxAwhGraphs = 6;
+constexpr int maxAwhGraphs = 6;
 
 /*! \brief Constructs a legend for a standard awh output file */
 std::vector<std::string>makeLegend(const AwhBiasParams *awhBiasParams,
@@ -318,11 +318,8 @@ OutputFile::OutputFile(const std::string  filename,
     numDim_(0),
     firstGraphSubBlock_(0),
     numGraph_(0),
-    useKTForEnergy_(0),
-    scaleFactor_(),
-    legend_(),
-    xLabel_(),
-    yLabel_()
+    useKTForEnergy_(0)
+
 {
     // cppcheck-suppress useInitializationList
     baseFilename_ = filename.substr(0, filename.find('.'));
index ebbfdcdd73153e4fb4496b1e2f72dbefdbe20e82..dadda8fa0a97f9aebac30cad7c158772d4425a1c 100644 (file)
@@ -97,7 +97,6 @@ static void p_integrate(double *result, double data[], int ndata, double slWidth
         }
         result[slice] = sum;
     }
-    return;
 }
 
 static void calc_potential(const char *fn, int **index, int gnx[],
index 517c171f3a1a5a4ecb84ce2af0433edc8bc6161a..8a63789489a8ce9eb78646d65d35d4257641ad93 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -148,8 +148,6 @@ static void cleandata(t_perf *perfdata, int test_nr)
     perfdata->Gcycles[test_nr]    = 0.0;
     perfdata->ns_per_day[test_nr] = 0.0;
     perfdata->PME_f_load[test_nr] = 0.0;
-
-    return;
 }
 
 
index 417c8c4c9cd4ea14a4f909d160bbef2e6bef0a37..e1a5344eaa39d5ff3ad45cf74a254ff2aeb0fda0 100644 (file)
@@ -313,7 +313,6 @@ gmx_nonbonded_set_kernel_pointers(FILE *log, t_nblist *nl, gmx_bool bElecAndVdwS
             }
         }
     }
-    return;
 }
 
 void do_nonbonded(const t_forcerec  *fr,
index 5f6643ec3a7f9b0411c15260b775c8f506440706..bec357639dfb47ef82b474ede7bea02c7267bfaf 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -105,7 +105,6 @@ static void hacksearch_atom(int *ii, int *jj, char *name,
         }
     }
 
-    return;
 }
 
 static void dump_ab(FILE *out, int natom, int nab[], t_hack *ab[], gmx_bool bHeader)
index 86b69207625c0bbc4ba925f7990fd0717fce8ddb..19af47de76168bb24e0cb3b7df624f121f144542 100644 (file)
@@ -329,7 +329,7 @@ class InsertMolecules : public ICommandLineOptionsModule, public ITopologyProvid
         InsertMolecules()
             : bBox_(false), nmolIns_(0), nmolTry_(10), seed_(0),
               defaultDistance_(0.105), scaleFactor_(0.57), enumRot_(en_rotXYZ),
-              top_(), ePBC_(-1)
+              ePBC_(-1)
         {
             clear_rvec(newBox_);
             clear_rvec(deltaR_);
index 10abaa52aed0dbe780565f18e93952f6dea198fc..2b699a101a45f8281f0f8f0135b43022b2f9fd7a 100644 (file)
@@ -1587,8 +1587,6 @@ static void do_simtemp_params(t_inputrec *ir)
 
     snew(ir->simtempvals->temperatures, ir->fepvals->n_lambda);
     GetSimTemps(ir->fepvals->n_lambda, ir->simtempvals, ir->fepvals->all_lambda[efptTEMPERATURE]);
-
-    return;
 }
 
 static void do_wall_params(t_inputrec *ir,
@@ -1691,8 +1689,6 @@ static void read_expandedparams(std::vector<t_inpfile> *inp,
     expand->wl_ratio            = get_ereal(inp, "wl-ratio", 0.8, wi);
     expand->init_wl_delta       = get_ereal(inp, "init-wl-delta", 1.0, wi);
     expand->bWLoneovert         = get_eeenum(inp, "wl-oneovert", yesno_names, wi);
-
-    return;
 }
 
 /*! \brief Return whether an end state with the given coupling-lambda
index 5620915da0f568bdc88c54dad354d00b7ab15a8b..106825d585484def95d22ccc4a21a95964b2a04c 100644 (file)
@@ -544,7 +544,7 @@ parseHwLoc(HardwareTopology::Machine *        machine,
     }
 
     hwloc_topology_destroy(topo);
-    return; // SupportLevel::Full or SupportLevel::FullWithDevices.
+// SupportLevel::Full or SupportLevel::FullWithDevices.
 }
 
 #endif
index b2ea814aa3e7700a5ee00a78e40a09b35d18a504..cd3bfae3c271c3493f2b588a1b3a8ef30e8801b4 100644 (file)
@@ -1832,7 +1832,6 @@ void make_dp_periodic(real *dp)  /* 1 flop? */
     {
         *dp += 2*M_PI;
     }
-    return;
 }
 
 /* As pdihs above, but without calculating energies and shift forces */
index 3258c8021936b38f43e1a6bef7bc44f98c47b42f..d1d2de44f068a100730fe16d62903bbe7fbc7129 100644 (file)
@@ -88,7 +88,7 @@ isPairInteraction(int ftype)
 }
 
 /*! \brief Zero thread-local output buffers */
-static void
+void
 zero_thread_output(bonded_threading_t *bt, int thread)
 {
     if (!bt->haveBondeds)
@@ -139,7 +139,7 @@ zero_thread_output(bonded_threading_t *bt, int thread)
 #define MAX_BONDED_THREADS 256
 
 /*! \brief Reduce thread-local force buffers */
-static void
+void
 reduce_thread_forces(int n, rvec *f,
                      bonded_threading_t *bt,
                      int nthreads)
@@ -196,7 +196,7 @@ reduce_thread_forces(int n, rvec *f,
 }
 
 /*! \brief Reduce thread-local forces, shift forces and energies */
-static void
+void
 reduce_thread_output(int n, rvec *f, rvec *fshift,
                      real *ener, gmx_grppairener_t *grpp, real *dvdl,
                      bonded_threading_t *bt,
@@ -256,7 +256,7 @@ reduce_thread_output(int n, rvec *f, rvec *fshift,
 
 /*! \brief Calculate one element of the list of bonded interactions
     for this thread */
-static real
+real
 calc_one_bond(int thread,
               int ftype, const t_idef *idef,
               const bonded_threading_t &bondedThreading,
index c1936042cc5dcea780be274df26d952a4e1634ab..e038184932f85aa03429071d72f11efb1beeeee8 100644 (file)
@@ -62,7 +62,7 @@ namespace gmx
 {
 
 MDAtoms::MDAtoms()
-    : mdatoms_(nullptr), chargeA_()
+    : mdatoms_(nullptr)
 {
 }
 
index 5da6ac6d74c821067b87274b4d48d976fb9226be..22a58d6b032af5cede89547eb86fa6d5b4f8e1d1 100644 (file)
@@ -2884,7 +2884,6 @@ extern void initialize_lambdas(FILE *fplog, t_inputrec *ir, int *fep_state, gmx:
         }
         fprintf(fplog, "]\n");
     }
-    return;
 }
 
 
index 9ce223671898098cb343d43e80117146063af19b..28186c9daf63968e8f5e9f5494c8c483c574c0c0 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -75,9 +75,7 @@ ekinstate_t::ekinstate_t() : bUpToDate(FALSE),
                              ekinf(nullptr),
                              ekinh_old(nullptr),
                              ekin_total(),
-                             ekinscalef_nhc(),
-                             ekinscaleh_nhc(),
-                             vscale_nhc(),
+
                              dekindl(0),
                              mvcos(0)
 {
@@ -231,24 +229,18 @@ t_state::t_state() : natoms(0),
                      flags(0),
                      fep_state(0),
                      lambda(),
-                     nosehoover_xi(),
-                     nosehoover_vxi(),
-                     nhpres_xi(),
-                     nhpres_vxi(),
-                     therm_integral(),
+
                      baros_integral(0),
                      veta(0),
                      vol0(0),
-                     x(),
-                     v(),
-                     cg_p(),
+
                      ekinstate(),
                      hist(),
                      dfhist(nullptr),
                      awhHistory(nullptr),
                      ddp_count(0),
-                     ddp_count_cg_gl(0),
-                     cg_gl()
+                     ddp_count_cg_gl(0)
+
 {
     // It would be nicer to initialize these with {} or {{0}} in the
     // above initialization list, but uncrustify doesn't understand
index 186e8fbf24cec01623a5470a788563ac69fd70c8..7edbd04ef1baf46d3e95e0fdbbe72f0c179994c5 100644 (file)
@@ -1430,8 +1430,6 @@ static void convertOldToNewGroupFormat(
     copyIndicesToGroup(indCations, nCations, g, cr);
     sfree(indAnions);
     sfree(indCations);
-
-    return;
 }
 
 
index 9b1ae2f103b0238b16e87ea10725680bb7e25feb..ea19040a7ce0d86c386793592223120e79b86559 100644 (file)
@@ -63,9 +63,9 @@ namespace
 constexpr bool g_usingMpi = GMX_MPI;
 
 //! Helper function to prepare to all-gather the vector of non-bonded tasks on this node.
-static std::vector<int> allgather(const int &input,
-                                  int        numRanks,
-                                  MPI_Comm   communicator)
+std::vector<int> allgather(const int &input,
+                           int        numRanks,
+                           MPI_Comm   communicator)
 {
     std::vector<int> result(numRanks);
     if (g_usingMpi && numRanks > 1)
@@ -106,8 +106,8 @@ static std::vector<int> allgather(const int &input,
 }
 
 //! Helper function to compute allgatherv displacements.
-static std::vector<int> computeDisplacements(ArrayRef<const int> extentOnEachRank,
-                                             int                 numRanks)
+std::vector<int> computeDisplacements(ArrayRef<const int> extentOnEachRank,
+                                      int                 numRanks)
 {
     std::vector<int> displacements(numRanks + 1);
     displacements[0] = 0;
@@ -116,10 +116,10 @@ static std::vector<int> computeDisplacements(ArrayRef<const int> extentOnEachRan
 }
 
 //! Helper function to all-gather the vector of all GPU tasks on ranks of this node.
-static std::vector<GpuTask> allgatherv(ArrayRef<const GpuTask> input,
-                                       ArrayRef<const int>     extentOnEachRank,
-                                       ArrayRef<const int>     displacementForEachRank,
-                                       MPI_Comm                communicator)
+std::vector<GpuTask> allgatherv(ArrayRef<const GpuTask> input,
+                                ArrayRef<const int>     extentOnEachRank,
+                                ArrayRef<const int>     displacementForEachRank,
+                                MPI_Comm                communicator)
 {
     // Now allocate the vector and do the allgatherv
     int                  totalExtent = displacementForEachRank.back();
index fa153e01de530032d43340d38026e0de3d9768ee..35d3e414c4f45d7b69a1e4d74b8aa59cb6f69883 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2017, by the GROMACS development team, led by
+ * Copyright (c) 2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -63,7 +63,7 @@ namespace
  * GPUs used (per node) can be different from the number of GPU IDs
  * used.
  */
-static size_t countUniqueGpuIdsUsed(const GpuTaskAssignments &gpuTaskAssignmentOnRanksOfThisNode)
+size_t countUniqueGpuIdsUsed(const GpuTaskAssignments &gpuTaskAssignmentOnRanksOfThisNode)
 {
     std::set<int> uniqueIds;
     for (const auto &assignmentsOnRank : gpuTaskAssignmentOnRanksOfThisNode)
index 2b7347b92713f0879a7fa0bee656bdb3bccf7706..9a980cbf6a89f521cbb12025145ec245b313708e 100644 (file)
@@ -304,7 +304,7 @@ class SingleRankChecker
 {
     public:
         //! Constructor
-        SingleRankChecker() : value_(false), reasons_() {}
+        SingleRankChecker() : value_(false) {}
         /*! \brief Call this function for each possible condition
             under which a single rank is required, along with a string
             describing the constraint when it is applied. */
index 4f0c65cbf45f290cc595dd48b2a53a560613e105..5749d437e36f698393510e8644bf97171ce8769c 100644 (file)
@@ -86,7 +86,7 @@ namespace
  *                                         that are eligible to run on GPUs.
  * \param[in]   gpuIds                     The user-supplied GPU IDs.
  */
-static GpuTaskAssignments
+GpuTaskAssignments
 buildTaskAssignment(const GpuTasksOnRanks  &gpuTasksOnRanksOfThisNode,
                     ArrayRef<const int>     gpuIds)
 {
@@ -120,7 +120,7 @@ buildTaskAssignment(const GpuTasksOnRanks  &gpuTasksOnRanksOfThisNode,
  *
  * Sharing GPUs among multiple ranks is possible via either user or
  * automated selection. */
-static bool isAnyGpuSharedBetweenRanks(const GpuTaskAssignments &gpuTaskAssignments)
+bool isAnyGpuSharedBetweenRanks(const GpuTaskAssignments &gpuTaskAssignments)
 {
     // Loop over all ranks i, looking on all higher ranks j whether
     // any tasks on them share GPU device IDs.
index 5629a3e78f36a7181e0603865d003eb417e82627..39cab13583953d92eb619ed682e93adbf0ba575a 100644 (file)
@@ -55,7 +55,7 @@ namespace gmx
 
 EnergyFrame::EnergyFrame(const t_enxframe &enxframe,
                          const std::map<std::string, int> indicesOfEnergyFields)
-    : values_(), step_(enxframe.step), time_(enxframe.t)
+    : step_(enxframe.step), time_(enxframe.t)
 {
     for (auto &index : indicesOfEnergyFields)
     {
index 058e5329c617a98ce8ada6459f5399acf6b43ee6..f50806dcc56a8af30805a3afcec11240b1a098e4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2011,2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -648,7 +648,7 @@ Angle::initAnalysis(const TrajectoryAnalysisSettings &settings,
 
 
 //! Helper method to calculate a vector from two or three positions.
-static void
+void
 calc_vec(int natoms, rvec x[], t_pbc *pbc, rvec xout, rvec cout)
 {
     switch (natoms)
index 30c749297f4d2e7511e994f8466e45b46d56b8b9..eda7d1bcaedfe42d7481a5c00d71a722357214b1 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2015,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -98,7 +98,7 @@ namespace
  *        gmx::alignedMalloc(). Just like system-provided routines, it provides
  *        memory that is aligned - but not padded.
  */
-gmx_unused static void *
+gmx_unused void *
 alignedMallocGeneric(std::size_t bytes, std::size_t alignment)
 {
     // The amount of extra memory (beyound what the user asked for) we need is:
@@ -138,7 +138,7 @@ alignedMallocGeneric(std::size_t bytes, std::size_t alignment)
  * \note  This is an internal routine that should only be called from
  *        gmx::alignedFree().
  */
-gmx_unused static void
+gmx_unused void
 alignedFreeGeneric(void *p)
 {
     if (p)
@@ -149,7 +149,7 @@ alignedFreeGeneric(void *p)
 }
 
 //! Implement malloc of \c bytes of memory, aligned to \c alignment.
-static void *mallocImpl(std::size_t bytes, std::size_t alignment)
+void *mallocImpl(std::size_t bytes, std::size_t alignment)
 {
     void   *    p;
 
@@ -172,7 +172,7 @@ static void *mallocImpl(std::size_t bytes, std::size_t alignment)
 }
 
 //! Free aligned memory allocated with mallocImpl().
-static void freeImpl(void *p)
+void freeImpl(void *p)
 {
     if (p)
     {
index 76bb61598819ebcf99f3efd11654dbcebca89e97..53cc036ed96f9ce7ba16df41c320856f16b4f203 100644 (file)
@@ -592,12 +592,8 @@ void gmx_tmpnam(char *buf)
                   strerror(errno));
     }
     close(fd);
-
 #endif
-
     /* name in Buf should now be OK and file is CLOSED */
-
-    return;
 }
 
 FILE *gmx_fopen_temporary(char *buf)
index 40fc08ae62cb9183df33ca39cff63854d73147b0..aaae4d03e416a35ad3ffd2607f5634d027fc64c5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2010,2012,2014,2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2010,2012,2014,2015,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -254,5 +254,4 @@ gmx_qsort(void *           base,
 #undef QSORT_EXCH
 #undef QSORT_SWAP
 
-    return;
 }