1a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//===- CocoaConventions.h - Special handling of Cocoa conventions -*- C++ -*--//
2a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//
3a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//                     The LLVM Compiler Infrastructure
4a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//
5a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek// This file is distributed under the University of Illinois Open Source
6a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek// License. See LICENSE.TXT for details.
7a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//
8a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//===----------------------------------------------------------------------===//
9a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//
106970155edde8c79cf22824322470485434b8eb83Francois Pichet// This file implements cocoa naming convention analysis.
11a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//
12a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek//===----------------------------------------------------------------------===//
13a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek
14bb8fef382ad89b4bc202a1dbd4cd52ced7734479Ted Kremenek#ifndef LLVM_CLANG_ANALYSIS_DS_COCOA
15bb8fef382ad89b4bc202a1dbd4cd52ced7734479Ted Kremenek#define LLVM_CLANG_ANALYSIS_DS_COCOA
16a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek
1744b8e4652d8e20c1e6611b35803e47b4a013b6c2Jordy Rose#include "clang/Basic/LLVM.h"
180556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek#include "llvm/ADT/StringRef.h"
19a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek
20a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremeneknamespace clang {
217df2ff45f101c87398329d0ea23c1377328dca40John McCallclass FunctionDecl;
227df2ff45f101c87398329d0ea23c1377328dca40John McCallclass QualType;
23786dcd9dca76e3780fdb9642c0db33ed13db1187Douglas Gregor
249ef6537a894c33003359b1f9b9676e9178e028b7Ted Kremeneknamespace ento {
25a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremeneknamespace cocoa {
2678acdbfb522f62b6e8899e078e48fea44fda287dTed Kremenek
27686775deca8b8685eb90801495880e3abdd844c2Chris Lattner  bool isRefType(QualType RetTy, StringRef Prefix,
28686775deca8b8685eb90801495880e3abdd844c2Chris Lattner                 StringRef Name = StringRef());
290556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek
300556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek  bool isCocoaObjectRef(QualType T);
310556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek
320556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek}
330556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek
340556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremeneknamespace coreFoundation {
3578acdbfb522f62b6e8899e078e48fea44fda287dTed Kremenek  bool isCFObjectRef(QualType T);
3678acdbfb522f62b6e8899e078e48fea44fda287dTed Kremenek
377df2ff45f101c87398329d0ea23c1377328dca40John McCall  bool followsCreateRule(const FunctionDecl *FD);
380556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek}
39a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek
400556048ae8ff743d0abb9fa88a0d0ee8e9123742Ted Kremenek}} // end: "clang:ento"
41a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek
42a64e89bbfa756816d1e4a48e5d6c03edf1d7f23bTed Kremenek#endif
43