summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/c
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-07-18 17:58:04 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-07-18 17:58:04 +0000
commite21fc8770ca4900c131f51a749dac480006d6591 (patch)
tree6bf54a7c1e78378dd70bcf75edbfa566e2c0fa04 /lldb/packages/Python/lldbsuite/test/lang/c
parent801fa8e6b9eb2398a051752bb0e9d81279360d14 (diff)
downloadbcm5719-llvm-e21fc8770ca4900c131f51a749dac480006d6591.tar.gz
bcm5719-llvm-e21fc8770ca4900c131f51a749dac480006d6591.zip
Add offsetof support to expression evaluator.
Summary: We currently don't support offsetof in the expression evaluator as it is implemented as a macro (which then calls __builtin_offsetof) in stddef.h. The best solution would be to include that header (or even better, import Clang's builtin module), but header-parsing and (cross-platform) importing modules is not ready yet. Until we get this working with modules I would say we add the macro to our existing macro list as we already do with other macros from stddef.h/stdint.h. We should be able to drop all of them once we can import the relevant modules by default. rdar://26040641 Reviewers: shafik, davide Reviewed By: davide Subscribers: clayborg, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D64917 llvm-svn: 366476
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/c')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/c/offsetof/Makefile3
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/c/offsetof/TestOffsetof.py3
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/c/offsetof/main.c12
3 files changed, 18 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/Makefile b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/Makefile
new file mode 100644
index 00000000000..cd9ca5c86d8
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/Makefile
@@ -0,0 +1,3 @@
+LEVEL = ../../../make
+C_SOURCES := main.c
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/TestOffsetof.py b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/TestOffsetof.py
new file mode 100644
index 00000000000..1311a149326
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/TestOffsetof.py
@@ -0,0 +1,3 @@
+from lldbsuite.test import lldbinline
+
+lldbinline.MakeInlineTest(__file__, globals())
diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/main.c b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/main.c
new file mode 100644
index 00000000000..cbb4a144418
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/c/offsetof/main.c
@@ -0,0 +1,12 @@
+#include <stdint.h>
+
+struct Foo {
+ int8_t a;
+ int16_t b;
+};
+
+int main (int argc, char const *argv[]) {
+ struct Foo f;
+ return f.a; //% self.expect("expr offsetof(Foo, a)", substrs = ['= 0'])
+ //% self.expect("expr offsetof(Foo, b)", substrs = ['= 2'])
+}
OpenPOWER on IntegriCloud