Files
clang-p2996/clang/test/ASTMerge/class/test.cpp
Peter Szecsi b180eebed4 [ASTImporter] FriendDecl importing improvements
There are only a few cases of importing a frienddecl which is currently supported.
This patch aims to improve the friend import process.
Set FriendObjectKind in case of decls, insert friend into the friend chain
correctly, checks structurally equivalent in a more advanced manner.
Test cases added as well.  

llvm-svn: 330847
2018-04-25 17:28:03 +00:00

25 lines
1.3 KiB
C++

// RUN: %clang_cc1 -emit-pch -o %t.1.ast %S/Inputs/class1.cpp
// RUN: %clang_cc1 -emit-pch -o %t.2.ast %S/Inputs/class2.cpp
// RUN: %clang_cc1 -ast-merge %t.1.ast -ast-merge %t.2.ast -fsyntax-only %s 2>&1 | FileCheck %s
// RUN: %clang_cc1 -ast-merge %t.1.ast -ast-merge %t.2.ast -fsyntax-only %s 2>&1 -Wno-odr -Werror
// CHECK: class1.cpp:6:8: warning: type 'B' has incompatible definitions in different translation units
// CHECK: class1.cpp:7:9: note: field 'y' has type 'float' here
// CHECK: class2.cpp:7:7: note: field 'y' has type 'int' here
// FIXME: we should also complain about mismatched types on the method
// CHECK: class1.cpp:18:6: warning: type 'E' has incompatible definitions in different translation units
// CHECK: class1.cpp:19:3: note: enumerator 'b' with value 1 here
// CHECK: class2.cpp:12:3: note: enumerator 'a' with value 0 here
// CHECK: class1.cpp:36:8: warning: type 'F2' has incompatible definitions in different translation units
// CHECK: class1.cpp:39:3: note: friend declared here
// CHECK: class2.cpp:30:8: note: no corresponding friend here
// CHECK: class1.cpp:43:8: warning: type 'F3' has incompatible definitions in different translation units
// CHECK: class1.cpp:46:3: note: friend declared here
// CHECK: class2.cpp:36:8: note: no corresponding friend here
// CHECK: 4 warnings generated.