Files
clang-p2996/clang/test/SemaCXX/PR40395.cpp
Bill Wendling ff57307bd6 Remove Expr sugar decorating the CXXUuidofExpr node.
Summary: Sugar, like ConstantExpr, causes an infinite expansion of the template object.

Reviewers: rsmith, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: riccibruno, aaron.ballman, cfe-commits, tzik, rnk

Differential Revision: https://reviews.llvm.org/D57114

llvm-svn: 352307
2019-01-27 07:24:03 +00:00

17 lines
400 B
C++

// RUN: %clang_cc1 -std=c++17 -fms-extensions -triple=x86_64-pc-win32 -verify %s
// expected-no-diagnostics
// PR40395 - ConstantExpr shouldn't cause the template object to infinitely
// expand.
struct _GUID {};
struct __declspec(uuid("{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}")) B {};
template <const _GUID* piid>
struct A {
virtual void baz() { A<piid>(); }
};
void f() {
A<&__uuidof(B)>();
}