Index: tester/covoar/CoverageMap.cc
===================================================================
--- tester/covoar/CoverageMap.cc	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/CoverageMap.cc	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -11,7 +11,8 @@
 
   CoverageMap::CoverageMap(
-    uint32_t low,
-    uint32_t high
-  ) : CoverageMapBase(low, high)
+    const std::string& exefileName,
+    uint32_t           low,
+    uint32_t           high
+  ) : CoverageMapBase(exefileName, low, high)
   {
   }
Index: tester/covoar/CoverageMap.h
===================================================================
--- tester/covoar/CoverageMap.h	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/CoverageMap.h	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -28,6 +28,7 @@
      */
     CoverageMap(
-      uint32_t low,
-      uint32_t high
+      const std::string& exefileName,
+      uint32_t           low,
+      uint32_t           high
     );
 
Index: tester/covoar/CoverageMapBase.cc
===================================================================
--- tester/covoar/CoverageMapBase.cc	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/CoverageMapBase.cc	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -17,6 +17,7 @@
 
   CoverageMapBase::CoverageMapBase(
-    uint32_t low,
-    uint32_t high
+    const std::string& exefileName,
+    uint32_t           low,
+    uint32_t           high
   )
   {
@@ -24,4 +25,5 @@
     AddressRange_t range;
 
+    range.fileName    = exefileName;
     range.lowAddress  = low;
     range.highAddress = high;
Index: tester/covoar/CoverageMapBase.h
===================================================================
--- tester/covoar/CoverageMapBase.h	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/CoverageMapBase.h	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -29,4 +29,9 @@
     typedef struct {
       /*!
+       *  This is the file from which this originated.
+       */
+      std::string fileName;
+
+      /*!
        *  This is the low address of the address map range.
        */
@@ -49,10 +54,12 @@
      *  This method constructs a CoverageMapBase instance.
      *
+     *  @param[in] exefileName specifies the executable this originated in
      *  @param[in] low specifies the lowest address of the coverage map
      *  @param[in] high specifies the highest address of the coverage map
      */
     CoverageMapBase(
-      uint32_t low,
-      uint32_t high
+      const std::string& exefileName,
+      uint32_t           low,
+      uint32_t           high
     );
 
Index: tester/covoar/DesiredSymbols.cc
===================================================================
--- tester/covoar/DesiredSymbols.cc	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/DesiredSymbols.cc	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -336,4 +336,5 @@
 
   void DesiredSymbols::createCoverageMap(
+    const std::string& exefileName,
     const std::string& symbolName,
     uint32_t           size
@@ -364,17 +365,25 @@
       if (itr->second.stats.sizeInBytes != size) {
 
+        // Changed ERROR to INFO because size mismatch is not treated as
+        // error anymore.
+        // Set smallest size as size and continue.
+        // Update value for longer byte size.
+        // 2015-07-22
         fprintf(
           stderr,
-          "ERROR: DesiredSymbols::createCoverageMap - Attempt to create "
-          "unified coverage maps for %s with different sizes (%d != %d)\n",
+          "INFO: DesiredSymbols::createCoverageMap - Attempt to create "
+          "unified coverage maps for %s with different sizes (%s/%d != %s/%d)\n",
+
           symbolName.c_str(),
+          exefileName.c_str(),
           itr->second.stats.sizeInBytes,
+          itr->second.sourceFile->getFileName().c_str(),
           size
         );
+
         if ( itr->second.stats.sizeInBytes < size )
           itr->second.stats.sizeInBytes = size;
         else
           size = itr->second.stats.sizeInBytes;
-        // exit( -1 );
       }
     }
@@ -385,5 +394,5 @@
       highAddress = size - 1;
 
-      aCoverageMap = new CoverageMap( 0, highAddress );
+      aCoverageMap = new CoverageMap( exefileName, 0, highAddress );
       if (!aCoverageMap) {
 
@@ -391,5 +400,6 @@
           stderr,
           "ERROR: DesiredSymbols::createCoverageMap - Unable to allocate "
-          "coverage map for %s\n",
+          "coverage map for %s:%s\n",
+          exefileName.c_str(),
           symbolName.c_str()
         );
@@ -654,4 +664,6 @@
     // Ensure that the source and destination coverage maps
     // are the same size.
+    // Changed from ERROR msg to INFO, because size mismatch is not
+    // treated as error anymore. 2015-07-20
     dMapSize = itr->second.stats.sizeInBytes;
     sBaseAddress = sourceCoverageMap->getFirstLowAddress();
@@ -661,10 +673,9 @@
       fprintf(
         stderr,
-        "ERROR: DesiredSymbols::mergeCoverageMap - Unable to merge "
+        "INFO: DesiredSymbols::mergeCoverageMap - Unable to merge "
         "coverage map for %s because the sizes are different\n",
         symbolName.c_str()
       );
       return;
-      // exit( -1 );
     }
 
Index: tester/covoar/DesiredSymbols.h
===================================================================
--- tester/covoar/DesiredSymbols.h	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/DesiredSymbols.h	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -21,6 +21,6 @@
 
 
-  /*! 
-   * 
+  /*!
+   *
    *  This class defines the statistics that are tracked.
    */
@@ -35,5 +35,5 @@
 
     /*!
-     *  This member variable contains the total number of branches where 
+     *  This member variable contains the total number of branches where
      *  one or more paths were executed.
      */
@@ -56,5 +56,5 @@
      */
     uint32_t sizeInBytes;
-    
+
     /*!
      *  This member contains the size in Bytes.
@@ -94,5 +94,5 @@
     /*!
      *  This method constructs a Statistics instance.
-     */   
+     */
      Statistics():
        branchesAlwaysTaken(0),
@@ -138,5 +138,5 @@
     /*!
      *  This member contains the statistics kept on each symbol.
-     */    
+     */
     Statistics stats;
 
@@ -187,15 +187,15 @@
 
     /*!
-     *  This variable contains a map of symbol sets for each 
+     *  This variable contains a map of symbol sets for each
      *  symbol in the system keyed on the symbol name.
      */
     symbolSet_t set;
 
-    /*! 
+    /*!
      *  This method constructs a DesiredSymbols instance.
      */
     DesiredSymbols();
 
-    /*! 
+    /*!
      *  This method destructs a DesiredSymbols instance.
      */
@@ -204,5 +204,5 @@
     /*!
      *  This method loops through the coverage map and
-     *  calculates the statistics that have not already 
+     *  calculates the statistics that have not already
      *  been filled in.
      */
@@ -219,4 +219,6 @@
      *  using the specified size.
      *
+     *  @param[in] exefileName specifies the executable from which the
+     *             coverage map is being created
      *  @param[in] symbolName specifies the symbol for which to create
      *             a coverage map
@@ -224,4 +226,5 @@
      */
     void createCoverageMap(
+      const std::string& exefileName,
       const std::string& symbolName,
       uint32_t           size
@@ -317,5 +320,5 @@
     /*!
      *  This member contains the statistics kept on each symbol.
-     */    
+     */
     Statistics stats;
 
Index: tester/covoar/ExecutableInfo.cc
===================================================================
--- tester/covoar/ExecutableInfo.cc	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/ExecutableInfo.cc	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -90,4 +90,5 @@
 
   CoverageMapBase* ExecutableInfo::createCoverageMap (
+    const std::string& fileName,
     const std::string& symbolName,
     uint32_t           lowAddress,
@@ -100,5 +101,5 @@
     itr = coverageMaps.find( symbolName );
     if ( itr == coverageMaps.end() ) {
-      theMap = new CoverageMap( lowAddress, highAddress );
+      theMap = new CoverageMap( fileName, lowAddress, highAddress );
       coverageMaps[ symbolName ] = theMap;
     } else {
Index: tester/covoar/ExecutableInfo.h
===================================================================
--- tester/covoar/ExecutableInfo.h	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/ExecutableInfo.h	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -94,4 +94,5 @@
      *  This method creates a coverage map for the specified symbol.
      *
+     *  @param[in] exefileName specifies the source of the information
      *  @param[in] symbolName specifies the name of the symbol
      *  @param[in] lowAddress specifies the low address of the coverage map
@@ -101,4 +102,5 @@
      */
     CoverageMapBase* createCoverageMap (
+      const std::string& exefileName,
       const std::string& symbolName,
       uint32_t           lowAddress,
Index: tester/covoar/ObjdumpProcessor.cc
===================================================================
--- tester/covoar/ObjdumpProcessor.cc	(revision b857151112fe5ae05f20447e2598123a3bce1657)
+++ tester/covoar/ObjdumpProcessor.cc	(revision cb018bcdff30e4582b4a6b348dc0fb7776a92b58)
@@ -4,5 +4,5 @@
  *  This file contains the implementation of the functions supporting
  *  the reading of an objdump output file and adding nops to a
- *  coverage map. 
+ *  coverage map.
  */
 
@@ -98,5 +98,5 @@
     // Create a coverage map for the symbol.
     aCoverageMap = executableInfo->createCoverageMap(
-      symbolName, lowAddress, endAddress
+      executableInfo->getFileName().c_str(), symbolName, lowAddress, endAddress
     );
 
@@ -113,5 +113,6 @@
       // Create a unified coverage map for the symbol.
       SymbolsToAnalyze->createCoverageMap(
-        symbolName, endAddress - lowAddress + 1
+        executableInfo->getFileName().c_str(), symbolName,
+        endAddress - lowAddress + 1
       );
     }
@@ -171,5 +172,5 @@
       if ( tmp.find( Library ) != tmp.npos ) {
         // fprintf( stderr, "%s - 0x%08x\n", inLibName, offset );
-        address = offset; 
+        address = offset;
         break;
       }
@@ -183,7 +184,7 @@
 
   bool ObjdumpProcessor::IsBranch(
-    const char *instruction 
-  )
-  { 
+    const char *instruction
+  )
+  {
     if ( !TargetInfo ) {
       fprintf(
@@ -231,5 +232,5 @@
   }
 
-  FILE* ObjdumpProcessor::getFile( std::string fileName ) 
+  FILE* ObjdumpProcessor::getFile( std::string fileName )
   {
     char               dumpFile[128];
@@ -239,5 +240,5 @@
 
     sprintf( dumpFile, "%s.dmp", fileName.c_str() );
-      
+
     // Generate the objdump.
     if (FileIsNewer( fileName.c_str(), dumpFile )) {
@@ -260,5 +261,5 @@
         exit( -1 );
       }
-    } 
+    }
 
     // Open the objdump file.
@@ -284,5 +285,5 @@
       return 0;
     }
-    
+
     itr++;
     if (itr == objdumpList.end()) {
