annotate clang/test/SemaCXX/PR40395.cpp @ 222:81f6424ef0e3 llvm-original

LLVM original branch
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 18 Jul 2021 22:10:01 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -std=c++17 -fms-extensions -triple=x86_64-pc-win32 -verify %s
anatofuz
parents:
diff changeset
2 // expected-no-diagnostics
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // PR40395 - ConstantExpr shouldn't cause the template object to infinitely
anatofuz
parents:
diff changeset
5 // expand.
anatofuz
parents:
diff changeset
6 struct _GUID {};
anatofuz
parents:
diff changeset
7 struct __declspec(uuid("{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}")) B {};
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 template <const _GUID* piid>
anatofuz
parents:
diff changeset
10 struct A {
anatofuz
parents:
diff changeset
11 virtual void baz() { A<piid>(); }
anatofuz
parents:
diff changeset
12 };
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 void f() {
anatofuz
parents:
diff changeset
15 A<&__uuidof(B)>();
anatofuz
parents:
diff changeset
16 }