aboutsummaryrefslogtreecommitdiff
path: root/test/Index/code-complete-errors.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-28 06:00:51 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-28 06:00:51 +0000
commitd93256e55673a17d18543397ec462416acb13792 (patch)
tree5b150fa660dcb777d022715e66051091d9bb9ffa /test/Index/code-complete-errors.c
parenta8d8fec7876666d90bb2a144d3b832b2d89a088a (diff)
Introduce serialization and deserialization of diagnostic information
so that CIndex can report diagnostics through the normal mechanisms even when executing Clang in a separate process. This applies both when performing code completion and when using ASTs as an intermediary for clang_createTranslationUnitFromSourceFile(). The serialized format is not perfect at the moment, because it does not encapsulate macro-instantiation information. Instead, it maps all source locations back to the instantiation location. However, it does maintain source-range and fix-it information. To get perfect fidelity from the serialized format would require serializing a large chunk of the source manager; at present, it isn't clear if this code will live long enough for that to matter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94740 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Index/code-complete-errors.c')
-rw-r--r--test/Index/code-complete-errors.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Index/code-complete-errors.c b/test/Index/code-complete-errors.c
new file mode 100644
index 0000000000..43bc5d8a1a
--- /dev/null
+++ b/test/Index/code-complete-errors.c
@@ -0,0 +1,16 @@
+_Complex cd; // CHECK: code-complete-errors.c:1:1: warning: plain '_Complex' requires a type specifier; assuming '_Complex double'
+
+struct s {
+ int x, y;;
+};
+
+struct s s0 = { y: 5 }; // CHECK: code-complete-errors.c:7:20: warning: use of GNU old-style field designator extension
+
+int f(int *ptr1, float *ptr2) {
+ return ptr1 != ptr2; // CHECK: code-complete-errors.c:10:15: warning: comparison of distinct pointer types ('int *' and 'float *')
+}
+
+void g() { }
+
+// RUN: c-index-test -code-completion-at=%s:13:12 %s 2> %t
+// RUN: FileCheck -check-prefix=CHECK %s < %t