From 6b706cfa78548a55172ef08fe55f5ea12489d3f1 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Fri, 17 Jul 2015 16:50:40 +0100
Subject: [PATCH] Upgrade Intel C++ compiler to icpc (ICC) 15.0.3 20150407

This resolves a whole range of issues and work-arounds with earlier
releases.  This version of icpc is more or less compatible with the
latest gcc and clang compilers and only required one hack to avoid
warnings from PackedBoolList.H.
---
 .../HashTables/HashTable/HashTable.H          |  6 ++---
 .../StaticHashTable/StaticHashTable.H         |  2 --
 .../LinkedLists/accessTypes/ILList/ILList.C   |  4 +--
 .../LinkedLists/accessTypes/ILList/ILList.H   | 22 ++--------------
 .../Lists/PackedList/PackedBoolList.H         |  4 +--
 src/OpenFOAM/db/typeInfo/className.H          |  9 -------
 .../DimensionedField/DimensionedField.C       |  4 +--
 .../DimensionedField/DimensionedField.H       |  4 +--
 .../FieldFields/FieldField/FieldField.C       |  6 ++---
 .../FieldFields/FieldField/FieldField.H       | 26 ++++---------------
 .../FieldField/FieldFieldFunctions.C          |  4 +--
 .../FieldField/FieldFieldFunctions.H          |  4 +--
 src/OpenFOAM/fields/Fields/Field/Field.C      | 13 ++--------
 src/OpenFOAM/fields/Fields/Field/Field.H      | 11 +++-----
 .../GeometricField/GeometricField.C           |  6 ++---
 .../GeometricField/GeometricField.H           |  6 ++---
 .../GeometricField/GeometricFieldFunctions.C  |  4 +--
 .../GeometricField/GeometricFieldFunctions.H  |  4 +--
 src/OpenFOAM/global/debug/defineDebugSwitch.H |  9 -------
 src/OpenFOAM/memory/tmp/tmp.H                 |  4 ---
 .../processorCyclicFvPatchField.H             |  7 +++--
 .../processor/processorFvsPatchField.H        |  4 +--
 .../processorCyclicFvsPatchField.H            |  7 +++--
 .../fvMatrices/fvMatrix/fvMatrix.C            |  2 +-
 .../fvMatrices/fvMatrix/fvMatrix.H            |  2 +-
 .../upwindCECCellToFaceStencilObject.H        |  4 +--
 .../upwindCFCCellToFaceStencilObject.H        |  4 +--
 .../upwindFECCellToFaceStencilObject.H        |  4 +--
 wmake/rules/linux64Icc/c++                    |  3 ++-
 wmake/rules/linuxIA64Icc/c++                  |  3 ++-
 wmake/rules/linuxIcc/c++                      |  3 ++-
 31 files changed, 56 insertions(+), 139 deletions(-)

diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index cd42beb0238..0b3218c40b6 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -370,7 +370,7 @@ public:
                 );
 
                 //- Construct from hash table, element and hash index
-                inline explicit iteratorBase
+                inline iteratorBase
                 (
                     const HashTable<T, Key, Hash>* curHashTable,
                     const hashedEntry* elmt,
@@ -428,7 +428,7 @@ public:
                 );
 
                 //- Construct from hash table, element and hash index
-                inline explicit iterator
+                inline iterator
                 (
                     HashTable<T, Key, Hash>* curHashTable,
                     hashedEntry* elmt,
@@ -483,7 +483,7 @@ public:
                 );
 
                 //- Construct from hash table, element and hash index
-                inline explicit const_iterator
+                inline const_iterator
                 (
                     const HashTable<T, Key, Hash>* curHashTable,
                     const hashedEntry* elmt,
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
index 8d6cfb42049..d3372ed0e19 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
@@ -297,10 +297,8 @@ public:
         {
             friend class StaticHashTable;
 
-#           ifndef __INTEL_COMPILER
             template<class TRef2, class TableRef2>
             friend class Iterator;
-#           endif
 
             // Private data
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.C
index 090e12f67b7..460498e7d56 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,6 @@ Foam::ILList<LListBase, T>::ILList(const ILList<LListBase, T>& lst)
 }
 
 
-#ifndef __INTEL_COMPILER
 template<class LListBase, class T>
 template<class CloneArg>
 Foam::ILList<LListBase, T>::ILList
@@ -65,7 +64,6 @@ Foam::ILList<LListBase, T>::ILList
         this->append(iter().clone(cloneArg).ptr());
     }
 }
-#endif
 
 
 // * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
index 0d91423e901..893095d15bc 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -95,25 +95,7 @@ public:
 
         //- Copy constructor with additional argument for clone
         template<class CloneArg>
-        ILList(const ILList<LListBase, T>& lst, const CloneArg& cloneArg)
-        #ifdef __INTEL_COMPILER
-        :
-            UILList<LListBase, T>()
-        {
-            for
-            (
-                typename UILList<LListBase, T>::const_iterator iter =
-                    lst.begin();
-                iter != lst.end();
-                ++iter
-            )
-            {
-                append(iter().clone(cloneArg).ptr());
-            }
-        }
-        #else
-        ;
-        #endif
+        ILList(const ILList<LListBase, T>& lst, const CloneArg& cloneArg);
 
         //- Construct from Istream using given Istream constructor class
         template<class INew>
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
index 9a7c23ecf46..4909cf92406 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedBoolList.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -200,7 +200,7 @@ public:
             inline PackedBoolList& operator=(const PackedList<1>&);
 
             //- Assignment operator.
-            PackedBoolList& operator=(const UList<bool>&);
+            PackedBoolList& operator=(const Foam::UList<bool>&);
 
             //- Assignment operator,
             //  using the labels as indices to indicate which bits are set
diff --git a/src/OpenFOAM/db/typeInfo/className.H b/src/OpenFOAM/db/typeInfo/className.H
index 364d7ecb844..e70e3c85dd8 100644
--- a/src/OpenFOAM/db/typeInfo/className.H
+++ b/src/OpenFOAM/db/typeInfo/className.H
@@ -99,14 +99,6 @@ public:                                                                       \
 #define defineTypeName(Type)                                                  \
     defineTypeNameWithName(Type, Type::typeName_())
 
-#ifdef __INTEL_COMPILER
-//- Define the typeName as \a Name for template classes
-# define defineTemplateTypeNameWithName(Type, Name)                           \
-    defineTypeNameWithName(Type, Name)
-//- Define the typeName as \a Name for template sub-classes
-# define defineTemplate2TypeNameWithName(Type, Name)                          \
-    defineTypeNameWithName(Type, Name)
-#else
 //- Define the typeName as \a Name for template classes
 # define defineTemplateTypeNameWithName(Type, Name)                           \
     template<>                                                                \
@@ -115,7 +107,6 @@ public:                                                                       \
 # define defineTemplate2TypeNameWithName(Type, Name)                          \
     template<>                                                                \
     defineTypeNameWithName(Type, Name)
-#endif
 
 //- Define the typeName for template classes, useful with typedefs
 #define defineTemplateTypeName(Type)                                          \
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
index bdffc35596a..a33942e9b9d 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.C
@@ -158,7 +158,7 @@ DimensionedField<Type, GeoMesh>::DimensionedField
 {}
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type, class GeoMesh>
 DimensionedField<Type, GeoMesh>::DimensionedField
 (
@@ -251,7 +251,7 @@ DimensionedField<Type, GeoMesh>::DimensionedField
 {}
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type, class GeoMesh>
 DimensionedField<Type, GeoMesh>::DimensionedField
 (
diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
index 3472cecf115..b3beb9577c0 100644
--- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
+++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedField.H
@@ -169,7 +169,7 @@ public:
         );
 
         //- Construct as copy of tmp<DimensionedField> deleting argument
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         DimensionedField
         (
             const tmp<DimensionedField<Type, GeoMesh> >&
@@ -214,7 +214,7 @@ public:
         );
 
         //- Construct as copy resetting name
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         DimensionedField
         (
             const word& newName,
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C
index 1a34e280da9..c6faf4a7da8 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -168,7 +168,7 @@ FieldField<Field, Type>::FieldField(const PtrList<Field<Type> >& tl)
 
 
 // Construct as copy of tmp<FieldField>
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<template<class> class Field, class Type>
 FieldField<Field, Type>::FieldField(const tmp<FieldField<Field, Type> >& tf)
 :
@@ -197,7 +197,6 @@ tmp<FieldField<Field, Type> > FieldField<Field, Type>::clone() const
 }
 
 
-#ifndef __INTEL_COMPILER
 template<template<class> class Field, class Type>
 template<class Type2>
 tmp<FieldField<Field, Type> > FieldField<Field, Type>::NewCalculatedType
@@ -217,7 +216,6 @@ tmp<FieldField<Field, Type> > FieldField<Field, Type>::NewCalculatedType
 
     return tmp<FieldField<Field, Type> >(nffPtr);
 }
-#endif
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H
index 1556e3a9b8a..94f89dbf6a3 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -108,9 +108,9 @@ public:
         FieldField(const PtrList<Field<Type> >&);
 
         //- Construct as copy of tmp<FieldField>
-#       ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         FieldField(const tmp<FieldField<Field, Type> >&);
-#       endif
+        #endif
 
         //- Construct from Istream
         FieldField(Istream&);
@@ -124,24 +124,8 @@ public:
         static tmp<FieldField<Field, Type> > NewCalculatedType
         (
             const FieldField<Field, Type2>& ff
-        )
-#       ifdef __INTEL_COMPILER
-        {
-            FieldField<Field, Type>* nffPtr
-            (
-                new FieldField<Field, Type>(ff.size())
-            );
-
-            forAll(*nffPtr, i)
-            {
-                nffPtr->set(i, Field<Type>::NewCalculatedType(ff[i]).ptr());
-            }
-
-            return tmp<FieldField<Field, Type> >(nffPtr);
-        }
-#       else
-        ;
-#       endif
+        );
+
 
     // Member functions
 
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
index 7c68958b156..4dfc131e4bc 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -614,10 +614,8 @@ BINARY_TYPE_FUNCTION(Type, Type, Type, cmptDivide)
 
 UNARY_OPERATOR(Type, Type, -, negate)
 
-#ifndef __INTEL_COMPILER
 BINARY_OPERATOR(Type, Type, scalar, *, multiply)
 BINARY_OPERATOR(Type, scalar, Type, *, multiply)
-#endif
 BINARY_OPERATOR(Type, Type, scalar, /, divide)
 
 BINARY_TYPE_OPERATOR_SF(Type, scalar, Type, *, multiply)
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.H b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.H
index 65f68b34ec0..97dccf45106 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.H
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -253,10 +253,8 @@ BINARY_TYPE_FUNCTION(Type, Type, Type, cmptDivide)
 
 UNARY_OPERATOR(Type, Type, -, negate)
 
-#ifndef __INTEL_COMPILER
 BINARY_OPERATOR(Type, Type, scalar, *, multiply)
 BINARY_OPERATOR(Type, scalar, Type, *, multiply)
-#endif
 BINARY_OPERATOR(Type, Type, scalar, /, divide)
 
 BINARY_TYPE_OPERATOR_SF(Type, scalar, Type, *, multiply)
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.C b/src/OpenFOAM/fields/Fields/Field/Field.C
index 7cca8f99427..48fcaacac07 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.C
+++ b/src/OpenFOAM/fields/Fields/Field/Field.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -222,15 +222,6 @@ Foam::Field<Type>::Field(const Xfer<Field<Type> >& f)
 {}
 
 
-#ifdef __INTEL_COMPILER
-template<class Type>
-Foam::Field<Type>::Field(const typename Field<Type>::subField& sf)
-:
-    List<Type>(sf)
-{}
-#endif
-
-
 template<class Type>
 Foam::Field<Type>::Field(const UList<Type>& list)
 :
@@ -239,7 +230,7 @@ Foam::Field<Type>::Field(const UList<Type>& list)
 
 
 // Construct as copy of tmp<Field>
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type>
 Foam::Field<Type>::Field(const tmp<Field<Type> >& tf)
 :
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.H b/src/OpenFOAM/fields/Fields/Field/Field.H
index 5d8903ea63e..f9c340f9bc6 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.H
+++ b/src/OpenFOAM/fields/Fields/Field/Field.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -210,15 +210,10 @@ public:
         //- Construct by transferring the Field contents
         Field(const Xfer<Field<Type> >&);
 
-#ifdef __INTEL_COMPILER
-        //- Construct as copy of subField
-        Field(const typename Field<Type>::subField&);
-#endif
-
         //- Construct as copy of tmp<Field>
-#       ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         Field(const tmp<Field<Type> >&);
-#       endif
+        #endif
 
         //- Construct from Istream
         Field(Istream&);
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
index 32b427c04c6..d18f24e19fb 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
@@ -426,7 +426,7 @@ Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 }
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type, template<class> class PatchField, class GeoMesh>
 Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 (
@@ -488,7 +488,7 @@ Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 }
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type, template<class> class PatchField, class GeoMesh>
 Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 (
@@ -552,7 +552,7 @@ Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 }
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type, template<class> class PatchField, class GeoMesh>
 Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 (
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
index 91acb5630af..334bdc26701 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
@@ -355,7 +355,7 @@ public:
         );
 
         //- Construct as copy of tmp<GeometricField> deleting argument
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         GeometricField
         (
             const tmp<GeometricField<Type, PatchField, GeoMesh> >&
@@ -370,7 +370,7 @@ public:
         );
 
         //- Construct as copy of tmp<GeometricField> resetting IO parameters
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         GeometricField
         (
             const IOobject&,
@@ -386,7 +386,7 @@ public:
         );
 
         //- Construct as copy resetting name
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         GeometricField
         (
             const word& newName,
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
index 7d1e9f71c21..bdd619e3592 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -557,10 +557,8 @@ BINARY_TYPE_FUNCTION(Type, Type, Type, cmptDivide)
 
 UNARY_OPERATOR(Type, Type, -, negate, transform)
 
-#ifndef __INTEL_COMPILER
 BINARY_OPERATOR(Type, Type, scalar, *, '*', multiply)
 BINARY_OPERATOR(Type, scalar, Type, *, '*', multiply)
-#endif
 BINARY_OPERATOR(Type, Type, scalar, /, '|', divide)
 
 BINARY_TYPE_OPERATOR_SF(Type, scalar, Type, *, '*', multiply)
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H
index c8e0a8e48e9..459bb7b7b74 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -250,10 +250,8 @@ BINARY_TYPE_FUNCTION(Type, Type, Type, cmptDivide)
 
 UNARY_OPERATOR(Type, Type, -, negate, transform)
 
-#ifndef __INTEL_COMPILER
 BINARY_OPERATOR(Type, Type, scalar, *, '*', multiply)
 BINARY_OPERATOR(Type, scalar, Type, *, '*', multiply)
-#endif
 BINARY_OPERATOR(Type, Type, scalar, /, '|', divide)
 
 BINARY_TYPE_OPERATOR_SF(Type, scalar, Type, *, '*', multiply)
diff --git a/src/OpenFOAM/global/debug/defineDebugSwitch.H b/src/OpenFOAM/global/debug/defineDebugSwitch.H
index 830c71fb3cd..54731a1b6ef 100644
--- a/src/OpenFOAM/global/debug/defineDebugSwitch.H
+++ b/src/OpenFOAM/global/debug/defineDebugSwitch.H
@@ -114,14 +114,6 @@ public:
     defineDebugSwitchWithName(Type, Type::typeName_(), DebugSwitch);          \
     registerDebugSwitchWithName(Type, Type, Type::typeName_())
 
-#ifdef __INTEL_COMPILER
-//- Define the debug information for templates, lookup as \a Name
-# define defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch)           \
-    defineDebugSwitchWithName(Type, Name, DebugSwitch)
-//- Define the debug information for templates sub-classes, lookup as \a Name
-# define defineTemplate2DebugSwitchWithName(Type, Name, DebugSwitch)          \
-    defineDebugSwitchWithName(Type, Name, DebugSwitch)
-#else
 //- Define the debug information for templates, lookup as \a Name
 # define defineTemplateDebugSwitchWithName(Type, Name, DebugSwitch)           \
     template<>                                                                \
@@ -132,7 +124,6 @@ public:
     template<>                                                                \
     defineDebugSwitchWithName(Type, Name, DebugSwitch);                       \
     registerTemplateDebugSwitchWithName(Type, Name)
-#endif
 
 //- Define the debug information for templates
 //  Useful with typedefs
diff --git a/src/OpenFOAM/memory/tmp/tmp.H b/src/OpenFOAM/memory/tmp/tmp.H
index fd6a0c0335c..7ca3a13ca27 100644
--- a/src/OpenFOAM/memory/tmp/tmp.H
+++ b/src/OpenFOAM/memory/tmp/tmp.H
@@ -38,10 +38,6 @@ SourceFiles
 #include "refCount.H"
 #include <cstddef>
 
-#ifndef __INTEL_COMPILER
-#   define ConstructFromTmp
-#endif
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
index c03236b0daf..d2c244bd69d 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -150,9 +150,8 @@ public:
         }
 
 
-    // Destructor
-
-        ~processorCyclicFvPatchField();
+    //- Destructor
+    virtual ~processorCyclicFvPatchField();
 
 
     // Member functions
diff --git a/src/finiteVolume/fields/fvsPatchFields/constraint/processor/processorFvsPatchField.H b/src/finiteVolume/fields/fvsPatchFields/constraint/processor/processorFvsPatchField.H
index 73ef5341f19..38aa5f18c7b 100644
--- a/src/finiteVolume/fields/fvsPatchFields/constraint/processor/processorFvsPatchField.H
+++ b/src/finiteVolume/fields/fvsPatchFields/constraint/processor/processorFvsPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -131,7 +131,7 @@ public:
 
 
     //- Destructor
-    ~processorFvsPatchField();
+    virtual ~processorFvsPatchField();
 
 
     // Member functions
diff --git a/src/finiteVolume/fields/fvsPatchFields/constraint/processorCyclic/processorCyclicFvsPatchField.H b/src/finiteVolume/fields/fvsPatchFields/constraint/processorCyclic/processorCyclicFvsPatchField.H
index 8f725ce861d..c096662b29e 100644
--- a/src/finiteVolume/fields/fvsPatchFields/constraint/processorCyclic/processorCyclicFvsPatchField.H
+++ b/src/finiteVolume/fields/fvsPatchFields/constraint/processorCyclic/processorCyclicFvsPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -131,9 +131,8 @@ public:
         }
 
 
-    // Destructor
-
-        ~processorCyclicFvsPatchField();
+    //- Destructor
+    virtual ~processorCyclicFvsPatchField();
 
 
     // Member functions
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index abbfdc621e7..8da078fbc40 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -356,7 +356,7 @@ Foam::fvMatrix<Type>::fvMatrix(const fvMatrix<Type>& fvm)
 }
 
 
-#ifdef ConstructFromTmp
+#ifndef NoConstructFromTmp
 template<class Type>
 Foam::fvMatrix<Type>::fvMatrix(const tmp<fvMatrix<Type> >& tfvm)
 :
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
index 4809e6b5ead..c9282af68b7 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
@@ -263,7 +263,7 @@ public:
         fvMatrix(const fvMatrix<Type>&);
 
         //- Construct as copy of tmp<fvMatrix<Type> > deleting argument
-        #ifdef ConstructFromTmp
+        #ifndef NoConstructFromTmp
         fvMatrix(const tmp<fvMatrix<Type> >&);
         #endif
 
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
index 9882a8253a8..d9f673deb4c 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ public:
     // Constructors
 
         //- Construct from uncompacted face stencil
-        explicit upwindCECCellToFaceStencilObject
+        upwindCECCellToFaceStencilObject
         (
             const fvMesh& mesh,
             const bool pureUpwind,
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
index ecedf99593a..65c635eb920 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ public:
     // Constructors
 
         //- Construct from uncompacted face stencil
-        explicit upwindCFCCellToFaceStencilObject
+        upwindCFCCellToFaceStencilObject
         (
             const fvMesh& mesh,
             const bool pureUpwind,
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
index babb254e221..1cd8695f815 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ public:
     // Constructors
 
         //- Construct from uncompacted face stencil
-        explicit upwindFECCellToFaceStencilObject
+        upwindFECCellToFaceStencilObject
         (
             const fvMesh& mesh,
             const bool pureUpwind,
diff --git a/wmake/rules/linux64Icc/c++ b/wmake/rules/linux64Icc/c++
index ed1891d9063..0614329d6d3 100644
--- a/wmake/rules/linux64Icc/c++
+++ b/wmake/rules/linux64Icc/c++
@@ -1,6 +1,7 @@
 SUFFIXES += .C
 
-c++WARN     = -wd327,525,654,819,1125,1476,1505,1572
+c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
+              -diag-disable 2304
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
diff --git a/wmake/rules/linuxIA64Icc/c++ b/wmake/rules/linuxIA64Icc/c++
index 646e6c0dca8..bb0a2a72df7 100644
--- a/wmake/rules/linuxIA64Icc/c++
+++ b/wmake/rules/linuxIA64Icc/c++
@@ -1,6 +1,7 @@
 SUFFIXES += .C
 
-c++WARN     = -wd327,525,654,819,1125,1476,1505,1572
+c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
+              -diag-disable 2304
 
 CC          = icpc
 
diff --git a/wmake/rules/linuxIcc/c++ b/wmake/rules/linuxIcc/c++
index bfbf8a10205..990e8eccedf 100644
--- a/wmake/rules/linuxIcc/c++
+++ b/wmake/rules/linuxIcc/c++
@@ -1,6 +1,7 @@
 SUFFIXES += .C
 
-c++WARN     = -wd327,525,654,819,1125,1476,1505,1572
+c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
+              -diag-disable 2304
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
-- 
GitLab