[libcxxabi] r238263 - Make sure !empty() before calling String::front().

David Majnemer david.majnemer at gmail.com
Tue May 26 16:43:36 PDT 2015


I didn't see anyone LGTM the phabricator review and no test has been added
for this change.  Perhaps you accidentally committed this?

On Tue, May 26, 2015 at 4:14 PM, Chaoren Lin <chaorenl at google.com> wrote:

> Author: chaoren
> Date: Tue May 26 18:14:26 2015
> New Revision: 238263
>
> URL: http://llvm.org/viewvc/llvm-project?rev=238263&view=rev
> Log:
> Make sure !empty() before calling String::front().
>
> Reviewers: howard.hinnant
>
> Subscribers: cfe-commits
>
> Differential Revision: http://reviews.llvm.org/D9954
>
> Modified:
>     libcxxabi/trunk/src/cxa_demangle.cpp
>
> Modified: libcxxabi/trunk/src/cxa_demangle.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_demangle.cpp?rev=238263&r1=238262&r2=238263&view=diff
>
> ==============================================================================
> --- libcxxabi/trunk/src/cxa_demangle.cpp (original)
> +++ libcxxabi/trunk/src/cxa_demangle.cpp Tue May 26 18:14:26 2015
> @@ -1671,7 +1671,7 @@ parse_pointer_to_member_type(const char*
>                  auto func = std::move(db.names.back());
>                  db.names.pop_back();
>                  auto class_type = std::move(db.names.back());
> -                if (func.second.front() == '(')
> +                if (!func.second.empty() && func.second.front() == '(')
>                  {
>                      db.names.back().first = std::move(func.first) + "(" +
> class_type.move_full() + "::*";
>                      db.names.back().second = ")" + std::move(func.second);
> @@ -2018,7 +2018,8 @@ parse_type(const char* first, const char
>                                      db.names[k].first += " (";
>                                      db.names[k].second.insert(0, ")");
>                                  }
> -                                else if (db.names[k].second.front() ==
> '(')
> +                                else if (!db.names[k].second.empty() &&
> +                                          db.names[k].second.front() ==
> '(')
>                                  {
>                                      db.names[k].first += "(";
>                                      db.names[k].second.insert(0, ")");
> @@ -2045,7 +2046,8 @@ parse_type(const char* first, const char
>                                      db.names[k].first += " (";
>                                      db.names[k].second.insert(0, ")");
>                                  }
> -                                else if (db.names[k].second.front() ==
> '(')
> +                                else if (!db.names[k].second.empty() &&
> +                                          db.names[k].second.front() ==
> '(')
>                                  {
>                                      db.names[k].first += "(";
>                                      db.names[k].second.insert(0, ")");
> @@ -2079,7 +2081,8 @@ parse_type(const char* first, const char
>                                      db.names[k].first += " (";
>                                      db.names[k].second.insert(0, ")");
>                                  }
> -                                else if (db.names[k].second.front() ==
> '(')
> +                                else if (!db.names[k].second.empty() &&
> +                                          db.names[k].second.front() ==
> '(')
>                                  {
>                                      db.names[k].first += "(";
>                                      db.names[k].second.insert(0, ")");
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150526/aef00d96/attachment.html>


More information about the cfe-commits mailing list