llvm-capstone/clang
Gabor Marton 5e7beb0a41 [analyzer] Add PlacementNewChecker
Summary:
This checker verifies if default placement new is provided with pointers
to sufficient storage capacity.

Noncompliant Code Example:
  #include <new>
  void f() {
    short s;
    long *lp = ::new (&s) long;
  }

Based on SEI CERT rule MEM54-CPP
https://wiki.sei.cmu.edu/confluence/display/cplusplus/MEM54-CPP.+Provide+placement+new+with+properly+aligned+pointe
This patch does not implement checking of the alignment.

Reviewers: NoQ, xazax.hun

Subscribers: mgorny, whisperity, xazax.hun, baloghadamsoftware, szepet,
rnkovacs, a.sidorin, mikhail.ramalho, donat

Tags: #clang

Differential Revision: https://reviews.llvm.org/D71612
2020-01-10 17:59:06 +01:00
..
bindings [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
cmake [CMake] Support running libc++abi tests in CrossWinToARMLinux cache file 2020-01-10 12:59:05 +03:00
docs [analyzer] Add PlacementNewChecker 2020-01-10 17:59:06 +01:00
examples [Attr] Add missing header for clang example. 2019-12-09 12:50:05 +00:00
include [analyzer] Add PlacementNewChecker 2020-01-10 17:59:06 +01:00
INPUTS
lib [analyzer] Add PlacementNewChecker 2020-01-10 17:59:06 +01:00
runtime
test [analyzer] Add PlacementNewChecker 2020-01-10 17:59:06 +01:00
tools Generalize the pass registration mechanism used by Polly to any third-party tool 2020-01-02 16:45:31 +01:00
unittests [NFC] format unittest for ExprMutAnalyzer 2020-01-10 16:10:55 +01:00
utils [ARM,MVE] Intrinsics for partial-overwrite imm shifts. 2020-01-08 14:42:24 +00:00
www CWG2352: Allow qualification conversions during reference binding. 2020-01-09 18:24:06 -08:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [clang] Move CLANG_BOOTSTRAP_CMAKE_ARGS above PASSTHROUGH_VARIABLES 2019-12-13 19:05:04 -08:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt [NFC] test commit reverted 2019-12-21 22:12:07 +04:00

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/