mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 06:18:56 -04:00

Summary: We introduce a strict policy for C++ CTU. It can work across TUs only if the C++ dialects are the same. We neither allow C vs C++ CTU. We do this because the same constructs might be represented with different properties in the corresponding AST nodes or even the nodes might be completely different (a struct will be RecordDecl in C, but it will be a CXXRectordDecl in C++, thus it may cause certain assertions during cast operations). Reviewers: xazax.hun, a_sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Differential Revision: https://reviews.llvm.org/D55134 llvm-svn: 348610
23 lines
724 B
C++
23 lines
724 B
C++
// We do not expect any error when one part of the triple is unknown, but other
|
|
// known parts are equal.
|
|
|
|
// RUN: rm -rf %t && mkdir %t
|
|
// RUN: mkdir -p %t/ctudir
|
|
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu \
|
|
// RUN: -emit-pch -o %t/ctudir/ctu-other.cpp.ast %S/Inputs/ctu-other.cpp
|
|
// RUN: cp %S/Inputs/ctu-other.cpp.externalFnMap.txt %t/ctudir/externalFnMap.txt
|
|
// RUN: %clang_analyze_cc1 -triple x86_64-unknown-linux-gnu \
|
|
// RUN: -analyzer-checker=core,debug.ExprInspection \
|
|
// RUN: -analyzer-config experimental-enable-naive-ctu-analysis=true \
|
|
// RUN: -analyzer-config ctu-dir=%t/ctudir \
|
|
// RUN: -Werror=ctu \
|
|
// RUN: -verify %s
|
|
|
|
// expected-no-diagnostics
|
|
|
|
int f(int);
|
|
|
|
int main() {
|
|
return f(5);
|
|
}
|