llvm-project/clang
Reid Kleckner f27e752fe8 Fix attribute((mode([word|unwind_word]))) for x32
Patch by H.J. Lu

```
typedef unsigned int gcc_word __attribute__((mode(word)));
```
and

```
typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word)));
```
define the largest unsigned integer types which can be stored in a
general purpose register, which may not be the pointer type.  For x32,
they aren't pointer nor unsigned long.  We should

1. Make getUnwindWordWidth and getRegisterWidth virtual,
2. Override them for x32, similar to hasInt128Type.
3. Use getRegisterWidth for __attribute__((mode(word)));

This fixes PR 24706.

Reviewers: rnk

Differential Revision: http://reviews.llvm.org/D16779

llvm-svn: 259383
2016-02-01 18:58:24 +00:00
..
INPUTS
bindings libclang: expose dllexport, dllimport attributes 2015-12-10 18:45:18 +00:00
cmake [CMake] Support a simple case for bootstrap builds to generate PGO data 2016-01-05 23:51:42 +00:00
docs docs: Clarify that cfi-unrelated-cast is based on lifetime. 2016-02-01 18:55:50 +00:00
examples Remove autoconf support 2016-01-26 21:30:40 +00:00
include Fix attribute((mode([word|unwind_word]))) for x32 2016-02-01 18:58:24 +00:00
lib Fix attribute((mode([word|unwind_word]))) for x32 2016-02-01 18:58:24 +00:00
runtime Remove autoconf support 2016-01-26 21:30:40 +00:00
test Fix attribute((mode([word|unwind_word]))) for x32 2016-02-01 18:58:24 +00:00
tools Class Property: class property and instance property can have the same name. 2016-01-28 18:49:28 +00:00
unittests Reapply r259210 with a fix for RegistryTest.cpp. 2016-02-01 14:11:47 +00:00
utils No need to use utostr when putting integers into a raw_ostream. NFC 2016-01-31 00:20:26 +00:00
www Mark DR1250 as implemented 2016-02-01 01:33:17 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Add the clang debug info test directory to .gitignore as it's managed separately. 2016-01-29 01:35:55 +00:00
CMakeLists.txt [CMake] Don't apply Export set to clang tools 2016-01-19 23:01:38 +00:00
CODE_OWNERS.TXT Remove references to autotools build. 2016-01-30 00:54:42 +00:00
INSTALL.txt Honor system specific paths of MAN pages 2015-11-20 18:49:02 +00:00
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt Update mailing list references to lists.llvm.org 2015-08-05 03:55:23 +00:00

README.txt

//===----------------------------------------------------------------------===//
// 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/