diff --git a/.vscode/settings.json b/.vscode/settings.json
index 8992812ac7493d6ac6ab4508c326f5ba3d99fcc4..ef7c58825713515763514eab07ce12ef3546ecfe 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -99,5 +99,6 @@
         ]
     },
     "gtest-adapter.debugConfig": "Run ELFIO Tests",
-    "gtest-adapter.supportLocation": true
+    "gtest-adapter.supportLocation": true,
+    "sonarlint.pathToCompileCommands": "${workspaceFolder}/build/compile_commands.json"
 }
\ No newline at end of file
diff --git a/elfio/elfio_section.hpp b/elfio/elfio_section.hpp
index dc6e3520ef494608e0b352272640201ddc507767..ed9281e87910ba711001c269e7be0066fea7540e 100644
--- a/elfio/elfio_section.hpp
+++ b/elfio/elfio_section.hpp
@@ -50,19 +50,16 @@ class section
     ELFIO_GET_SET_ACCESS_DECL( Elf_Word, name_string_offset );
     ELFIO_GET_ACCESS_DECL( Elf64_Off, offset );
 
-    virtual const char* get_data() const noexcept                           = 0;
-    virtual void   set_data( const char* raw_data, Elf_Word size ) noexcept = 0;
-    virtual void   set_data( const std::string& data ) noexcept             = 0;
-    virtual void   append_data( const char* raw_data,
-                                Elf_Word    size ) noexcept                    = 0;
-    virtual void   append_data( const std::string& data ) noexcept          = 0;
-    virtual void   insert_data( Elf_Word    pos,
-                                const char* raw_data,
-                                Elf_Word    size ) noexcept                    = 0;
-    virtual void   insert_data( Elf_Word           pos,
-                                const std::string& data ) noexcept          = 0;
-    virtual size_t get_stream_size() const noexcept                         = 0;
-    virtual void   set_stream_size( size_t value ) noexcept                 = 0;
+    virtual const char* get_data() const                                   = 0;
+    virtual void        set_data( const char* raw_data, Elf_Word size )    = 0;
+    virtual void        set_data( const std::string& data )                = 0;
+    virtual void        append_data( const char* raw_data, Elf_Word size ) = 0;
+    virtual void        append_data( const std::string& data )             = 0;
+    virtual void
+    insert_data( Elf_Xword pos, const char* raw_data, Elf_Word size )    = 0;
+    virtual void   insert_data( Elf_Xword pos, const std::string& data ) = 0;
+    virtual size_t get_stream_size() const                               = 0;
+    virtual void   set_stream_size( size_t value )                       = 0;
 
   protected:
     ELFIO_SET_ACCESS_DECL( Elf64_Off, offset );
@@ -171,9 +168,8 @@ template <class T> class section_impl : public section
     }
 
     //------------------------------------------------------------------------------
-    void insert_data( Elf_Word    pos,
-                      const char* raw_data,
-                      Elf_Word    size ) noexcept override
+    void
+    insert_data( Elf_Xword pos, const char* raw_data, Elf_Word size ) override
     {
         if ( get_type() != SHT_NOBITS ) {
             if ( get_size() + size < data_size ) {
@@ -207,7 +203,13 @@ template <class T> class section_impl : public section
         }
     }
 
-    size_t get_stream_size() const noexcept override { return stream_size; }
+    //------------------------------------------------------------------------------
+    void insert_data( Elf_Xword pos, const std::string& str_data ) override
+    {
+        return insert_data( pos, str_data.c_str(), (Elf_Word)str_data.size() );
+    }
+
+    size_t get_stream_size() const override { return stream_size; }
 
     //------------------------------------------------------------------------------
     void set_stream_size( size_t value ) override { stream_size = value; }