QualType in clang

  http://clang.llvm.org/docs/InternalsManual.html#the-qualtype-class

the QualType class is designed to be an efficient value class which contains a pointer to the unqualified type together with the qualifiers (const, volatile etc.). The class is implemented as a llvm::PointerIntPair

/// PointerIntPair - This class implements a pair of a pointer and small
/// integer.  It is designed to represent this in the space required by one
/// pointer by bitmangling the integer into the low part of the pointer.  This
/// can only be done for small integers: typically up to 3 bits, but it depends
/// on the number of bits available according to PointerLikeTypeTraits for the
/// type.
///
/// Note that PointerIntPair always puts the IntVal part in the highest bits
/// possible.  For example, PointerIntPair<void*, 1, bool> will put the bit for
/// the bool into bit #2, not bit #0, which allows the low two bits to be used
/// for something else.  For example, this allows:
///   PointerIntPair<PointerIntPair<void*, 1, bool>, 1, bool>
/// ... and the two bools will land in different bits.

  

时间: 2024-11-08 20:53:38

QualType in clang的相关文章

clang format 官方文档自定义参数介绍(中英文)

英文 Configuring Style in Code When using clang::format::reformat(...) functions, the format is specified by supplying the clang::format::FormatStyle structure. Configurable Format Style Options This section lists the supported style options. Value typ

Clang之语法抽象语法树AST

语法分析器的任务是确定某个单词流是否能够与源语言的语法适配,即设定一个称之为上下文无关语言(context-free language)的语言集合,语法分析器建立一颗与(词法分析出的)输入单词流对应的正确语法树.语法分析树的建立过程主要有两种方法:自顶向下语法分析法和自底向上分析法.AST作为语法分析树(parse tree)的一种简写方式,它独立于具体编程语言(C++.Java.C等),而且与语法分析树的建立过程无关(自顶向下和自底向上逻辑等价),是联系编译器前端.后端的重要接口.Clang的

GCC,LLVM,Clang编译器对比

http://www.cnblogs.com/qoakzmxncb/archive/2013/04/18/3029105.html 在XCode中,我们经常会看到这些编译选项(如下图),有些人可能会有些茫然,本文将对GCC4.2.LLVM GCC 4.2.LLVM compliler 2.0三个编译选项进行一个详细的介绍. GCC GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器.它是一套以 GPL 及 LGPL 许可证所发行的自

让你的checker出现在clang的checker list中

生成LLVM文件之后,做下面两件事,我们差不多就终于可以开始我们正式的编写checker之旅了. 1. clang,can-build,scan-view,ccc-analyzer全部添加正确的系统路径 2. 安装windows下的Perl64解释器并添加系统路径 到这里差不多就可使用了,我们来测试一下: clang --help clang -cc1 -analyzer-checker-help (列出所有可用的checker) 下面我们给出一段测试程序 char * test_fixed_a

windows平台下基于VisualStudio的Clang安装和配置

LLVM 是一个开源的编译器架构,它已经被成功应用到多个应用领域.Clang是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程语言.Clang 对源程序进行词法分析和语义分析,并将分析结果转换为 AST ( 抽象语法树 ) ,最后使用 LLVM 作为后端代码的生成器. Clang 的开发目标是提供一个可以替代 GCC 的前端编译器.与 GCC 相比,Clang 是一个重新设计的编译器前端,具有一系列优点,例如模块化,代码简

Windows上使用clang编译

- 先自己从源代码 (http://llvm.org/releases/) 编译llvm和clang,或者直接安装clang for Windows - 测试过使用cygwin (https://cygwin.com/install.html) 中安装的libc++,以及cygwin带的mingw编译,失败 - 测试过安装mingw (http://mingw.org/) 到默认位置,并安装gcc-g++,编译成功 - 测试OSL渲染,失败,函数找不到.

ubuntu 15.04 clang++ 3.6 编译cppcms1.0.5

首先下载cppcms库 wget -O cppcms-1.0.5.tar.bz2 http://downloads.sourceforge.net/project/cppcms/cppcms/1.0.5/cppcms-1.0.5.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcppcms%2Ffiles%2F&ts=1443867793&use_mirror=jaist 解压 tar jxvf cppcms-1.0.5.tar.bz

coco2dx新建项目报错,ld: -pie can only be used when targeting iOS 4.2 or later clang: error: linker command

在新建cocos2d-x以后,运行发现以下错误: ld: -pie can only be used when targeting iOS 4.2 or later clang: error: linker command failed with exit code 1 (use -v to see invocation) 如图所示: 这时候,选中左上角的项目文件 ------>选中General ---------> DeploymentInfo 中 -------------> De

Mac下Clang编译libcurl

使用终端进入curl的根目录下,执行 ./configre CC=clang make make install 之后前往/usr/local/lib下生成了libcurl.a和相应的动态库,头文件在/user/local/include里 默认会使用openssl来支持,因此在引用libcurl.a的时候,要依赖一些动态库,在FLAG里加一下: -lssl -lcrypto -lldap 如果想换成其他的sll库,或者想自己配置curl,执行./configure --help 查看详细选项.