diff options
| author | Reid Kleckner <rnk@google.com> | 2016-11-30 00:25:36 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2016-11-30 00:25:36 +0000 |
| commit | 15241ba4dd8009cd89676f6f280d5de870e958ab (patch) | |
| tree | d2f87cd05daf37f6a660ea9040835e2ced77e834 /clang/test/Frontend/plugin-vs-debug-info.cpp | |
| parent | 13b40bcc0322e27eaa61b459dec8f898ea1f069d (diff) | |
| download | bcm5719-llvm-15241ba4dd8009cd89676f6f280d5de870e958ab.tar.gz bcm5719-llvm-15241ba4dd8009cd89676f6f280d5de870e958ab.zip | |
Stop handling interesting deserialized decls after HandleTranslationUnit
Other AST consumers can deserialize interesting decls that we might
codegen, but they won't make it to the final object file and can trigger
assertions in debug information generation after finalization.
llvm-svn: 288221
Diffstat (limited to 'clang/test/Frontend/plugin-vs-debug-info.cpp')
| -rw-r--r-- | clang/test/Frontend/plugin-vs-debug-info.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/clang/test/Frontend/plugin-vs-debug-info.cpp b/clang/test/Frontend/plugin-vs-debug-info.cpp new file mode 100644 index 00000000000..dceb2f1d5a3 --- /dev/null +++ b/clang/test/Frontend/plugin-vs-debug-info.cpp @@ -0,0 +1,30 @@ +// This test uses PrintFunctionNames with -fdelayed-template-parsing because it +// happens to use a RecursiveASTVisitor that forces deserialization of AST +// files. +// +// RUN: %clang_cc1 -fdelayed-template-parsing -std=c++14 -emit-pch -o %t.pch %s +// RUN: %clang_cc1 -load %llvmshlibdir/PrintFunctionNames%pluginext \ +// RUN: -add-plugin print-fns -std=c++14 -include-pch %t.pch %s -emit-llvm \ +// RUN: -fdelayed-template-parsing -debug-info-kind=limited \ +// RUN: -o %t.ll 2>&1 | FileCheck --check-prefix=DECLS %s +// RUN: FileCheck --check-prefix=IR %s < %t.ll +// +// REQUIRES: plugins, examples + +// DECLS: top-level-decl: "func" + +// IR: define {{.*}}void @_Z4funcv() + +#ifndef HEADER +#define HEADER + +struct nullopt_t { + constexpr explicit nullopt_t(int) {} +}; +constexpr nullopt_t nullopt(0); + +#else + +void func() { } + +#endif |

