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