On Fri, May 05, 2023 at 07:28:59PM +0200, Jean-Marc Lasgouttes wrote:

commit 3ae5d6bdec1df23cc0d848b2d8bf6b0932eeee3b
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Fri May 5 20:35:23 2023 +0200

   Do not return copies of string members

   This fixes the g++ 12 warnings below.

After this commit my cygwin build crashes badly at startup. I can't even get a backtrace. What is strange is that a native Windows build works fine, instead. Both builds use the same version of gcc:

$ g++ -dumpfullversion
11.3.0

$ x86_64-w64-mingw32-g++ -dumpfullversion
11.3.0

I am baffled.

../../master/src/Converter.cpp:714:55: warning: possibly dangling reference to a temporary [-Wdangling-reference]
     714 |                                         Mover const & mover = 
getMover(conv.to());
         |                                                       ^~~~~
   ../../master/src/Converter.cpp:714:71: note: the temporary was destroyed at 
the end of the full expression ‘lyx::getMover(lyx::Converter::to() const())’
     714 |                                         Mover const & mover = 
getMover(conv.to());
         |                                                               
~~~~~~~~^~~~~~~~~~~
   ../../master/src/Converter.cpp:786:39: warning: possibly dangling reference 
to a temporary [-Wdangling-reference]
     786 |                         Mover const & mover = getMover(conv.from());
         |                                       ^~~~~
   ../../master/src/Converter.cpp:786:55: note: the temporary was destroyed at 
the end of the full expression ‘lyx::getMover(lyx::Converter::from() const())’
     786 |                         Mover const & mover = getMover(conv.from());
---
src/Converter.h |   18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/Converter.h b/src/Converter.h
index 091dbcd..9e8249d 100644
--- a/src/Converter.h
+++ b/src/Converter.h
@@ -52,15 +52,15 @@ public:
        ///
        void readFlags();
        ///
-       std::string const from() const { return from_; }
+       std::string const & from() const { return from_; }
        ///
-       std::string const to() const { return to_; }
+       std::string const & to() const { return to_; }
        ///
-       std::string const command() const { return command_; }
+       std::string const & command() const { return command_; }
        ///
        void setCommand(std::string const & command);
        ///
-       std::string const flags() const { return flags_; }
+       std::string const & flags() const { return flags_; }
        ///
        void setFlags(std::string const & flags) { flags_ = flags; }
        ///
@@ -74,7 +74,7 @@ public:
        ///
        bool latex() const { return latex_; }
        ///
-       std::string const latex_flavor() const { return latex_flavor_; }
+       std::string const & latex_flavor() const { return latex_flavor_; }
        ///
        bool docbook() const { return docbook_; }
        ///
@@ -84,13 +84,13 @@ public:
        ///
        bool nice() const { return nice_; }
        ///
-       std::string const result_dir() const { return result_dir_; }
+       std::string const & result_dir() const { return result_dir_; }
        ///
-       std::string const result_file() const { return result_file_; }
+       std::string const & result_file() const { return result_file_; }
        ///
-       std::string const parselog() const { return parselog_; }
+       std::string const & parselog() const { return parselog_; }
        ///
-       std::string const hyperref_driver() const { return href_driver_; }
+       std::string const & hyperref_driver() const { return href_driver_; }

private:
        ///
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

--
Enrico
--
lyx-devel mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to