Blame yosys-empty-label.patch
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
From 6732e566321b828c83b563d24a10ac31c6d03e28 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
From: Jon Burgess <jburgess777@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
Date: Sun, 28 Oct 2018 14:49:09 +0000
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
Subject: [PATCH] Avoid assert when label is an empty string
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
Calling back() on an empty string is not allowed and triggers
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
an assert with recent gcc:
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
$ cd manual/PRESENTATION_Intro
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
$ ../../yosys counter.ys
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
...
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
/usr/include/c++/8/bits/basic_string.h:1136: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::back() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&]: Assertion '!empty()' failed.
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
802 if (label.back() == ':' && GetSize(label) > 1)
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
(gdb) p label
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
$1 = ""
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
---
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
kernel/yosys.cc | 2 +-
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
diff --git a/kernel/yosys.cc b/kernel/yosys.cc
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
index 21eeadaa..f002955a 100644
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
--- a/kernel/yosys.cc
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
+++ b/kernel/yosys.cc
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
@@ -799,7 +799,7 @@ static void handle_label(std::string &command, bool &from_to_active, const std::
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
while (pos < GetSize(command) && command[pos] != ' ' && command[pos] != '\t' && command[pos] != '\r' && command[pos] != '\n')
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
label += command[pos++];
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
- if (label.back() == ':' && GetSize(label) > 1)
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
+ if (GetSize(label) > 1 && label.back() == ':')
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
{
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
label = label.substr(0, GetSize(label)-1);
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
command = command.substr(pos);
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
--
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
2.17.2
|
|
![](https://seccdn.libravatar.org/avatar/6047020da10e9cac0635e706fd790537c1416f184fe26f6887e97ba921998926?s=16&d=retro) |
e24c927 |
|