Bug#801576: lldb-3.5 expression evaluation is broken

Roman Podoliaka rpodolyaka at mirantis.com
Mon Oct 12 07:55:18 UTC 2015


Package: lldb-3.5
Version: 1:3.5-10
Severity: important

When I try to evaluate an arbitrary expression in lldb session, it
fails like this:

rpodolyaka at rpodolyaka-pc:~/src$ lldb
(lldb) expr 1 + 2
error: warning: duplicate 'signed' declaration specifier
error: cannot combine with previous 'unsigned' declaration specifier
error: 1 errors parsing expression

It's a known upstream issue, which can be resolved by applying the
following patch:

https://www.marc.info/?l=fedora-extras-commits&m=141954205617043&w=2

I've tried to rebuild the package with the patch applied and can
confirm it fixes the problem.

I'm using Debian Jessie. It'd nice to have this fixed in stable, as a
basic feature of lldb is essentially broken.
-------------- next part --------------
Index: llvm-toolchain-snapshot_3.5~svn211104/lldb/source/Expression/ExpressionSourceCode.cpp
============================================================================================
--- llvm-toolchain-snapshot_3.5~svn211104.orig/lldb/source/Expression/ExpressionSourceCode.cpp
+++ llvm-toolchain-snapshot_3.5~svn211104/lldb/source/Expression/ExpressionSourceCode.cpp
@@ -28,16 +28,16 @@
 #define nil (__null)
 #define YES ((BOOL)1)
 #define NO ((BOOL)0)
-typedef signed __INT8_TYPE__ int8_t;
-typedef unsigned __INT8_TYPE__ uint8_t;
-typedef signed __INT16_TYPE__ int16_t;
-typedef unsigned __INT16_TYPE__ uint16_t;
-typedef signed __INT32_TYPE__ int32_t;
-typedef unsigned __INT32_TYPE__ uint32_t;
-typedef signed __INT64_TYPE__ int64_t;
-typedef unsigned __INT64_TYPE__ uint64_t;
-typedef signed __INTPTR_TYPE__ intptr_t;
-typedef unsigned __INTPTR_TYPE__ uintptr_t;
+typedef __INT8_TYPE__ int8_t;
+typedef __UINT8_TYPE__ uint8_t;
+typedef __INT16_TYPE__ int16_t;
+typedef __UINT16_TYPE__ uint16_t;
+typedef __INT32_TYPE__ int32_t;
+typedef __UINT32_TYPE__ uint32_t;
+typedef __INT64_TYPE__ int64_t;
+typedef __UINT64_TYPE__ uint64_t;
+typedef __INTPTR_TYPE__ intptr_t;
+typedef __UINTPTR_TYPE__ uintptr_t;
 typedef __SIZE_TYPE__ size_t;
 typedef __PTRDIFF_TYPE__ ptrdiff_t;
 typedef unsigned short unichar;


More information about the Pkg-llvm-team mailing list