This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[libstdc++][PATCH] missing return statement in basic_regex::assign(basic_regex&&)


Hi,

the header file  <bits/regex.h> of libstdc++-v3 of gcc-4.9 is missing
return statement in the implementation of
basic_regex::assign(basic_regex&&). This is about line 619. The minimal
example to reproduce this bug is the following:

#include <regex>
int main()
{
  std::regex re;
  re.assign(std::regex("blabla"));
  return EXIT_SUCCESS;
}

When compiled with clang and run it produces SIGILL:

ptomulik@tea:$ clang++ -std=c++11 -g -O0 -o test test.cpp
ptomulik@tea:$ ./test

I attach patch created with git against the "gcc-4_9_2-release" tag.

Best regards.

-- 
PaweÅ Tomulik, tel. (22) 234 7925
Instytut Techniki Lotniczej i Mechaniki Stosowanej
Politechnika Warszawska


diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h
index fe10ceb..af5a414 100644
--- a/libstdc++-v3/include/bits/regex.h
+++ b/libstdc++-v3/include/bits/regex.h
@@ -623,6 +623,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	_M_original_str = std::move(__rhs._M_original_str);
 	__rhs._M_automaton.reset();
 	this->imbue(__rhs.getloc());
+	return *this;
       }
 
       /**


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]