llvm-project/clang/test/CodeGenCXX/debug-info-scoped-class.cpp
Adrian Prantl a40030f308 Fix a crash when emitting dbeug info for forward-declared scoped enums.
It is possible for enums to be created as part of their own
declcontext. We need to cache a placeholder to avoid the type being
created twice before hitting the cache.

<rdar://problem/24493203>

llvm-svn: 259975
2016-02-06 01:59:09 +00:00

16 lines
523 B
C++

// RUN: %clang_cc1 -emit-llvm -debug-info-kind=standalone -std=c++11 \
// RUN: -triple thumbv7-apple-ios %s -o - | FileCheck %s
// This forward-declared scoped enum will be created while building its own
// declcontext. Make sure it is only emitted once.
struct A {
enum class Return;
Return f1();
};
A::Return* f2() {}
// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "Return",
// CHECK-SAME: flags: DIFlagFwdDecl,
// CHECK-NOT: tag: DW_TAG_enumeration_type, name: "Return"