4ac73c7514f9e836b4d9781738f333c5cb91cb63 |
|
08-Aug-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '51e75aecf4fb303b91c9e54fd88e3509e5acc7a6' into merge-20130807 Conflicts: lib/Basic/Targets.cpp lib/Sema/SemaDeclAttr.cpp Change-Id: If457223ecbee9e43c73d15333bf10d36590d05c4
|
1652ed1cd2cb63e0d0cb74c67a40d9dc5cab6b89 |
|
26-Jul-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Tighten type-checking for vector attributes. Based on patch by Yunzhong Gao. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5b92696c8f1f8ef943ad87397b95c031b5787305 |
|
19-Jul-2013 |
Reid Kleckner <reid@kleckner.net> |
Create calling convention AttributedType sugar nodes Canonical types are unchanged. The type printer had to be changed to avoid printing any non-default implicit calling convention as well as the calling convention attribute. Reviewers: rjmccall Differential Revision: http://llvm-reviews.chandlerc.com/D1132 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
226399ce18cdcbb1e83af7c5e644bdabb9d4f2f8 |
|
13-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
Correctly classify pack expansions as NON_CANONICAL_UNLESS_DEPENDENT Test coverage for non-dependent pack expansions doesn't demonstrate a failure prior to this patch (a follow-up commit improving debug info will cover this commit specifically) but covers a related hole in our test coverage. Reviewed by Richard Smith & Eli Friedman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0a598fd7e428b5eb28b67770a66f3976ac365e42 |
|
27-Jun-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
12df246d6dea2ee1f92c186f922f1afcf499647a |
|
24-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
[AST] Introduce a new DecayedType sugar node The goal of this sugar node is to be able to look at an arbitrary FunctionType and tell if any of the parameters were decayed from an array or function type. Ultimately this is necessary to implement Microsoft's C++ name mangling scheme, which mangles decayed arrays differently from normal pointers. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D1014 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3bf68059002e67e393f3e89261f31506be223ca5 |
|
14-Jun-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix comments referring to non-existent types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2049840b0ffe8ee4bf39051cfa8ca08440c8f667 |
|
12-Jun-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '1342a4ef62dd7b839c6f09348b246a4f00282f29' into merge_20130612
|
a99ecbcc4c431d52df0b01539035ab5281d54656 |
|
25-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix linkage computation for derived types in inline functions. John noticed that the fix for pr15930 (r181981) didn't handle indirect uses of local types. For example, a pointer to local struct, or a function that returns it. One way to implement this would be to recursively look for local types. This would look a lot like the linkage computation itself for types. To avoid code duplication and utilize the existing linkage cache, this patch just makes the computation of "type with no linkage but externally visible because it is from an inline function" part of the linkage computation itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aa9df09729fb8aee3e645549e95fcb413306a7aa |
|
23-May-2013 |
Aaron Ballman <aaron@aaronballman.com> |
Adding in parsing and the start of semantic support for __sptr and __uptr pointer type qualifiers. This patch also fixes the correlated __ptr32 and __ptr64 pointer qualifiers so that they are truly type attributes instead of declaration attributes. For more information about __sptr and __uptr, see MSDN: http://msdn.microsoft.com/en-us/library/aa983399.aspx Patch reviewed by Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7247c88d1e41514a41085f83ebf03dd5220e054a |
|
15-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Use only explicit bool conversion operator The most common (non-buggy) case are where such objects are used as return expressions in bool-returning functions or as boolean function arguments. In those cases I've used (& added if necessary) a named function to provide the equivalent (or sometimes negative, depending on convenient wording) test. DiagnosticBuilder kept its implicit conversion operator owing to the prevalent use of it in return statements. One bug was found in ExprConstant.cpp involving a comparison of two PointerUnions (PointerUnion did not previously have an operator==, so instead both operands were converted to bool & then compared). A test is included in test/SemaCXX/constant-expression-cxx1y.cpp for the fix (adding operator== to PointerUnion in LLVM). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
83eba02c2ea333015335e2f74c4d11c5315b655d |
|
03-May-2013 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/master' into merge-20130502
|
a3ae52b63aff9d4478084e40b1f683f45eb06ab7 |
|
01-May-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
[documenting declaration]: Remove arc liftime qualifiers when doccumenting declrations in comments. // rdar://13757500 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db1519a95687622d08340f9b7522ef84a53b331a |
|
01-May-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
[ObjC declaration documentation] declaration of types involving Objective-C pointers must have their arc qualifiers elided as they don't add any additional info. // rdar://13757500. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998 |
|
30-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't treat a non-deduced 'auto' type as being type-dependent. Instead, there are now two distinct canonical 'AutoType's: one is the undeduced 'auto' placeholder type, and the other is a deduced-but-dependent type. All deduced-to-a-non-dependent-type cases are still non-canonical. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a2c3646c35dd09d21b74826240aa916545b1873f |
|
26-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement C++1y decltype(auto). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a10b97898ee6339c3110e6ca33f178ff52f05238 |
|
22-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y constexpr extensions, round 1: Allow most forms of declaration and statement in constexpr functions. Everything which doesn't require variable mutation is also allowed as an extension in C++11. 'void' becomes a literal type to support constexpr functions which return 'void'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a3609b0c7685346308ed2c8022f94949bbfe7cdf |
|
11-Apr-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] Implement member pointer emission and dereferencing Summary: Handles all inheritance models for both data and function member pointers. Also implements isZeroInitializable() and refactors some of the null member pointer code. MSVC supports converting member pointers through virtual bases, which clang does not (yet?) support. Implementing that extension is covered by http://llvm.org/15713 Reviewers: rjmccall CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D613 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cb428a1ac09dddf5ed3bf2a740f9ea31e9e11037 |
|
02-Apr-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] Rename enum and remove dead case per Jordan's suggestion The IHM_ prefix was a fairly gross abbreviation to try to hit three characters for uniqueness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4410489163931892b568f0a43bd49c430a3aa3f5 |
|
02-Apr-2013 |
Reid Kleckner <reid@kleckner.net> |
[ms-cxxabi] Move MS inheritance model calculation into MemberPointerType Summary: This makes it possible to share code between lib/AST/MicrosoftCXXABI.cpp and lib/CodeGen/MicrosoftCXXABI.cpp. No functionality change. Also adds comments about the layout of the member pointer structs as I currently understand them. Reviewers: rjmccall CC: timurrrr, cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D590 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
94cf910ac2d1719c1dfc163bbec3953f12efdf6f |
|
28-Mar-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
These are all simple pointer wrappers. Pass them by value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e81fdb1fdde48d3fa18df56c5797f6b0bc5dfc4a |
|
27-Mar-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Cleanup clang's specializations of simplify_type. Now that the basic implementation in llvm has been fixed, simplify the specializations in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
15d68882f5fa4afae8333e75b2bfd5e2834c8aaf |
|
19-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2013_03_18 Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: I05e70941163ec5a461eba43ef78f6738cd5a1e69
|
07b0fdcee8d64222b274779d02851cc53d18e0db |
|
18-Mar-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Bring inheriting constructor implementation up-to-date with current defect reports, and implement implicit definition of inheriting constructors. Remaining missing features: inheriting constructor templates, implicit exception specifications for inheriting constructors, inheriting constructors from dependent bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2d1b09641ecf2e754bf3fd244dc45dbf3e460c1b |
|
14-Mar-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Avoid computing the linkage too early. Don't invalidate it. Before this patch we would compute the linkage lazily and cache it. When the AST was modified in ways that could change the value, we would invalidate the cache. That was fairly brittle, since any code could ask for the a linkage before the correct value was available. We should change the API to one where the linkage is computed explicitly and trying to get it when it is not available asserts. This patch is a first step in that direction. We still compute the linkage lazily, but instead of invalidating a cache, we assert that the AST modifications didn't change the result. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bea522ff43a3f11c7a2bc7949119dbb9fce19e39 |
|
08-Mar-2013 |
Jordan Rose <jordan_rose@apple.com> |
ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType. No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
450b86c0c9ff8307f5145ced621914600196c500 |
|
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'b58f810669d9c17bcc025b7560de01d162856f34' into merge_20130226 Conflicts: include/clang/Basic/LangOptions.def lib/Sema/SemaDeclAttr.cpp Change-Id: Ia10b4d3b2c949a72d328cb58b113f90237d4a5d5
|
a2bb8923334ecd35b8f914dff7d105330abbad22 |
|
27-Feb-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't cache the visibility of types. Since r175326 an implicitly hidden template argument can cause a template installation to become hidden, even if the template itself has an explicit default visibility. This requires that we keep track of "late" additions of the visibility attribute. This is hopefully the last followup change. It just removes the caching of visibilities from types so that we can see new attributes even after a type has been used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f127eb8aeb3ce861f3dbc1adbb3362bfd98461e1 |
|
27-Feb-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Rename methods to comply with the LLVM Coding Standards. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
18895dc4fd29f0071eeb591be820338f16407906 |
|
27-Feb-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change Type::getLinkageAndVisibility to return a LinkageInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7728cddd7866fadd07f1191eee40985e3cdbc6bf |
|
23-Feb-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Revert r175912, "Add support for coldcc to clang" at John's request. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4c67aa96401b67b5200e701cff87485067ab0792 |
|
22-Feb-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Add support for coldcc to clang git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5eada844fa70b6e2bc941dd7306f7a4fb1e8529d |
|
22-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Streamify getNameForDiagnostic and remove the string versions of PrintTemplateArgumentList. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0adb17502365b56dca99bfa971c59514ece54877 |
|
21-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Avoid implicit conversions of Optional<T> to bool. This is a precursor to making Optional<T>'s operator bool 'explicit' when building Clang & LLVM as C++11. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
66874fb18afbffb8b2ca05576851a64534be3352 |
|
21-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Use None rather than Optional<T>() where possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dc84cd5efdd3430efb22546b4ac656aa0540b210 |
|
20-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Include llvm::Optional in clang/Basic/LLVM.h Post-commit CR feedback from Jordan Rose regarding r175594. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
21f18c4fda167dc5f72feddbd6a7ac1b63200a0d |
|
07-Feb-2013 |
Guy Benyei <guy.benyei@intel.com> |
Add OpenCL samplers as Clang builtin types and check sampler related restrictions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
903ef044e5fe8efe5d06f63945f903ae81a262fd |
|
31-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Revert r174043 and tweak the comment wording so I'm (hopefully) not confused by it again! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5917e2200106b6be70c2663824aec0ab6b1b1955 |
|
31-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove incorrect warning signs from QualType::getUnqualifiedType(). These statements were only true for 65 CLs after they were introduced two years ago. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
15bb58edc9d053aa49c28167deb41ff0409ddabc |
|
21-Jan-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'd130fd2e141f1fef412c2d58e7385370801bd718' into merge-llvm Conflicts: lib/Basic/Targets.cpp Change-Id: I90a669a33ffe4de8b32c8459016fd0b2a55da0ad
|
e6b9d802fb7b16d93474c4f1c179ab36202e8a8b |
|
20-Jan-2013 |
Guy Benyei <guy.benyei@intel.com> |
Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenCL 1.2 spec 6.9) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cd8ab51a44e80625d84126780b0d85a7732e25af |
|
17-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement C++11 semantics for [[noreturn]] attribute. This required splitting it apart from [[gnu::noreturn]] / __attribute__((noreturn)), since their semantics are not equivalent (for instance, we treat [[gnu::noreturn]] as affecting the function type, whereas [[noreturn]] does not). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
838dc597e25614c653a062a124b06a04d6b7f5eb |
|
12-Jan-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Disable caching of visibility. The testcase in pr14929 shows that this is extremely hard to do. If we choose to apply the attribute, that causes the visibility of some decls to change and that can happen really late (during codegen). Current gcc warns and ignores the attribute in this testcase with a warning. This suggest that the correct solution is to find a point in the compilation where we can compute the visibility and * assert it was never computed before * reject any attempts to compute it again in the future (with warnings). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aa46d513f47280a9786e8e9aa77f7089b3f8fee6 |
|
08-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Move ref qualifiers from Type bitfields into FunctionProtoType, stealing two bits from the number of parameters. This brings the bitfields down from 33 bits to 32 bits, reducing the size of Types by 4 bytes on 32-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
38980086c0f791e8c23cc882574f18e5b4a87db6 |
|
25-Dec-2012 |
Guy Benyei <guy.benyei@intel.com> |
Add intel_ocl_bicc calling convention as a function attribute to clang. The calling convention is already implemented in LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
140aadf5b927ae294388c680a7db44e5de39578a |
|
25-Dec-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add 171048 back but invalidate the cache of all redeclarations when setting the body of a functions. The problem was that hasBody looks at the entire chain and causes problems to -fvisibility-inlines-hidden if the cache was not invalidated. Original message: Cache visibility of decls. This unifies the linkage and visibility caching. I first implemented this when working on pr13844, but the previous fixes removed the performance advantage of this one. This is still a step in the right direction for making linkage and visibility cheap to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
eaf5ec43ec52f650a00254d1c20d51fb7671aead |
|
25-Dec-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r171048, "Cache visibility of decls." It broke stage2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dfb316613a40d0efc033c7bd0a49da59c915fc63 |
|
25-Dec-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Cache visibility of decls. This unifies the linkage and visibility caching. I first implemented this when working on pr13844, but the previous fixes removed the performance advantage of this one. This is still a step in the right direction for making linkage and visibility cheap to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b13621d08e20ac7aa550e05896de8a57ee99c1e8 |
|
18-Dec-2012 |
Guy Benyei <guy.benyei@intel.com> |
Re-commit r170428 changes with Linux style file endings. Add OpenCL images as clang builtin types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7f92f2d8d9b7a07900c030183bc13a9ff60057cc |
|
18-Dec-2012 |
Guy Benyei <guy.benyei@intel.com> |
Revert changes from r170428, as I accidentally changed the line endings of these files to Windows style. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
736104a7619c53ef92553780273d7357a3cdde81 |
|
18-Dec-2012 |
Guy Benyei <guy.benyei@intel.com> |
Add OpenCL images as clang builtin types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
30a2e16f6c27f888dd11eba6bbbae1e980078fcb |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort #include lines for all files under include/... This is a simpler sort, entirely automatic with the help of llvm/utils/sort_includes.py -- no manual edits here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8c88953ff0cebd861643ab92309aba71d23c306b |
|
14-Nov-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove another questionable use of hasTrivial*. The relevant thing for this test was whether the /selected/ operator= was trivial, not whether the class had any trivial (or any non-trivial) operator=s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
263366f9241366f29ba65b703120f302490c39ff |
|
17-Oct-2012 |
Derek Schuff <dschuff@google.com> |
Add pnaclcall convention to Native Client targets. Because PNaCl bitcode must be target-independent, it uses some different bitcode representations from other targets (e.g. byval and sret for structures). This means that without additional type information, it cannot meet some native ABI requirements for some targets (e.g. passing structures containing unions by value on x86-64). To allow generation of code which uses the correct native ABIs, we also support triples such as x86_64-nacl, which uses target-dependent IR (as opposed to le32-nacl, which uses byval and sret). To allow interoperation between the two types of code, this patch adds a calling convention attribute to be used in code compiled with the target-dependent triple, which will generate code using the le32-style bitcode. This calling convention does not need to be explicitly supported in the backend because it determines bitcode representation rather than native conventions (the backend just needs to undersand how to handle byval and sret for the Native Client OS). This patch implements __attribute__((pnaclcall)) to generate calls in bitcode according to the le32 bitcode conventions, an attribute which is accepted by any Native Client target, but issues a warning otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b43d87b0646aa04951056c7e0d1ab9a58eb09f66 |
|
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove pointless classof()'s. Updates to llvm/Support/Casting.h have rendered these classof()'s irrelevant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
041ce8e00afd1185549a25d5c2b97d219ae032d9 |
|
03-Oct-2012 |
Jordan Rose <jordan_rose@apple.com> |
Teach getCXXRecordDeclForPointerType about references. Then, rename it getPointeeCXXRecordDecl and give it a nice doc comment, and actually use it. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
82bfa19fe3be324b13fdbcda46304b52c500f0d4 |
|
02-Oct-2012 |
Aaron Ballman <aaron@aaronballman.com> |
Allowing individual targets to determine whether a given calling convention is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs. Fixes PR13782 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
023bd7d6ff3bf9ad6c9fa2e404924195e4f31584 |
|
27-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Pass PrintingPolicy by reference, copying it isn't cheap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
073819806ba2441e2a3e550107f1e756a6ee3ad0 |
|
26-Sep-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Teach Type::getAs<TemplateSpecializationType> that a TemplateSpecializationType for a type alias template can appear as sugar at any level of desugaring, just like a TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
|
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e6f18c3e6a28229b5871007858b8c30882494b09 |
|
13-Sep-2012 |
Richard Trieu <rtrieu@google.com> |
Add two new functions to Qualifiers. static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R) Removes the common qualifiers from L and R and returns them in a new Qualifier. This will be used in template diffing. void removeQualifiers(Qualifiers Q) Removes the qualifiers in Q from the current qualifier. This replaces the current underlying implementation of operator- and operator -= which only performed bit masking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9f0b1324a5352713337c75ef4a5acffd96609c6c |
|
11-Sep-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-2012_09_10
|
6666ed4ed2e2bc13da5ac5d0a4947019137d45be |
|
31-Aug-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Improved MSVC __interface support by adding first class support for it, instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
80ea4bc944eb01c220eeaa004b21ad709ba928e1 |
|
24-Aug-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2 Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: If47d0d39459760017258502b4d9e859ac36a273b
|
4ef832ffc1147ce2f9777f9fad650cb3139a1d00 |
|
10-Aug-2012 |
David Blaikie <dblaikie@gmail.com> |
Provide isConst/Volatile on CXXMethodDecl. This also provides isConst/Volatile/Restrict on FunctionTypes to coalesce the implementation with other callers (& update those other callers). Patch contributed by Sam Panzer (panzer@google.com). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
50d61c8ccfc633b13cdf594ea3cd3a217076debe |
|
08-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement final piece of DR963 and also DR587: A conditional operator between glvalues of types cv1 T and cv2 T produces a glvalue if the expressions are of the same value kind and one of cv1 and cv2 is a subset of the other. A conditional operator between two null pointer constants is permitted if one of them is of type std::nullptr_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3189d8c8f2f26d49e129b68f708042da3703816b |
|
07-Aug-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove obsolete comment. Obsoleted by r116524 when Type hierarhy bitfield implementation was changed to a union of bitfields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
08fc8eb5a1cc9c01af67e016ab21c9b905711eb1 |
|
03-Aug-2012 |
Shih-wei Liao <sliao@google.com> |
Merge with Clang upstream r160673 (Jul 24th 2012) Conflicts: lib/Sema/SemaDeclAttr.cpp Change-Id: I37f02f20642a037b9da8d35fefa01986cd250b14
|
b9d0b76e42fd2d4cdfd135220302458d03ad09fe |
|
27-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Final piece of core issue 1330: delay computing the exception specification of a defaulted special member function until the exception specification is needed (using the same criteria used for the delayed instantiation of exception specifications for function temploids). EST_Delayed is now EST_Unevaluated (using 1330's terminology), and, like EST_Uninstantiated, carries a pointer to the FunctionDecl which will be used to resolve the exception specification. This is enabled for all C++ modes: it's a little faster in the case where the exception specification isn't used, allows our C++11-in-C++98 extensions to work, and is still correct for C++98, since in that mode the computation of the exception specification can't fail. The diagnostics here aren't great (in particular, we should include implicit evaluation of exception specifications for defaulted special members in the template instantiation backtraces), but they're not much worse than before. Our approach to the problem of cycles between in-class initializers and the exception specification for a defaulted default constructor is modified a little by this change -- we now reject any odr-use of a defaulted default constructor if that constructor uses an in-class initializer and the use is in an in-class initialzer which is declared lexically earlier. This is a closer approximation to the current draft solution in core issue 1351, but isn't an exact match (but the current draft wording isn't reasonable, so that's to be expected). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aa488ea287c219565b5169d50142947d1b63a6ca |
|
16-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
More for PR11848: a pack expansion type isn't necessarily type-dependent (its pattern might be an alias template which doesn't use its arguments). It's always instantiation-dependent, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
222bc3c25b12fc0cf55175975dc4c25d7e1fac78 |
|
20-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: * Escape < characters in Doxygen comments as needed; * Demote one Doxygen comment to a regular comment to fix a Doxygen warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
86290333420dea36e41afb664884fc45ac7677a8 |
|
17-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: escaped a < character in a Doxygen comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
809d1be9820039b4cf6efa48246a0d70ffa13394 |
|
14-Jun-2012 |
James Dennett <jdennett@google.com> |
More doxygen/documentation cleanups. This reduces the number of warnings generated by Doxygen by about 100 (roughly 10%). Issues addressed: (1) Primarily, backslash-escaped "@foo" and "#bah" in Doxygen comments when they're not supposed to be Doxygen commands or links, and similarly for "<baz>" when it's not intended as as HTML tag; (2) Changed some \t commands (which don't exist) to \c ("to refer to a word of code", as the Doxygen manual says); (3) \precondition becomes \pre; (4) When touching comments, deleted a couple of spurious spaces in them; (5) Changed some \n and \r to \\n and \\r; (6) Fixed one tiny typo: #pragms -> #pragma. This patch touches documentation/comments only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c7d2e339f9a71a40db7b199082b42fe91e6fa2cb |
|
12-Jun-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Correct comment. The return type was changed to const Type* in r123814. Patch by David Röthlisberger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
41c2bcff88a23a046ee8d71451bc03717a4248f6 |
|
07-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix many doxygen formatting errors. This patch affects docs only, and includes formatting changes only (though those include some fixes for broken Doxygen markup that caused some content to be missing from generated pages). It avoids generating many spurious pages such as http://clang.llvm.org/doxygen/classRepresents.html, but likely not all yet. Patch by James Dennett. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2df1a5819fd98708ff3b4772f3477f6c1a8da59a |
|
11-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[objc] When boxing a BOOL/NSInteger/NSUInteger type, use the corresponding numberWithBool:/numberWithInteger:/numberWithUnsignedInteger: NSNumber selectors. rdar://11428703 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7ad5c996e9519ed4e9afd1f0166be1cd2be8415a |
|
05-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use raw_ostream in TypePrinter and eliminate uses of temporary std::strings. Part of rdar://10796159 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27a00970bf4ababdc115e54383e6252cc3276dfa |
|
05-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make BuiltinType::getName return a StringRef and introduce BuiltinType::getNameAsCString to get a const char* if necessary. This avoids unnecessary conversions when we want to use the result of getName as a StringRef. Part of rdar://10796159 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
152f6b7be508fbc61543f3736ebd390d7ac84bd1 |
|
28-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Rename isPODType (using the C++98 rules) into isCXX98PODType and make isPODType decide which one to use based on LangOptions. - -Wc++98-compat depends on the c++98 definition - Now __is_pod returns the right thing in c++11 and c++98 mode - All changes to the type traits test are validated against g++ 4.7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fa784da5b9039ead42323bfe9ae6d33ab3c5c6b3 |
|
24-Apr-2012 |
Shih-wei Liao <sliao@google.com> |
Merge with CLANG upstream r155088. Conflicts: lib/Basic/Targets.cpp Change-Id: Id80f069ae25e623967b705e9fa11cfd94dd2461c
|
13bffc532bafd45d4a77867993c1afb83c7661be |
|
19-Apr-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR 12586: Fix assert while running libc++ testsuite: deal with exception specifications on member function templates of class templates and other such nested beasties. Store the function template from which we are to instantiate an exception specification rather than trying to deduce it. Plus some additional test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e6975e9b0985ad7f7ff9187e38d95bfe9ac4181b |
|
17-Apr-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement DR1330 in C++11 mode, to support libstdc++4.7 which uses it. We have a new flavor of exception specification, EST_Uninstantiated. A function type with this exception specification carries a pointer to a FunctionDecl, and the exception specification for that FunctionDecl is instantiated (if needed) and used in the place of the function type's exception specification. When a function template declaration with a non-trivial exception specification is instantiated, the specialization's exception specification is set to this new 'uninstantiated' kind rather than being instantiated immediately. Expr::CanThrow has migrated onto Sema, so it can instantiate exception specs on-demand. Also, any odr-use of a function triggers the instantiation of its exception specification (the exception specification could be needed by IRGen). In passing, fix two places where a DeclRefExpr was created but the corresponding function was not actually marked odr-used. We used to get away with this, but don't any more. Also fix a bug where instantiating an exception specification which refers to function parameters resulted in a crash. We still have the same bug in default arguments, which I'll be looking into next. This, plus a tiny patch to fix libstdc++'s common_type, is enough for clang to parse (and, in very limited testing, support) all of libstdc++4.7's standard headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d316862f4fb281ec08a2e45cd3e5580574adb889 |
|
24-Mar-2012 |
Shih-wei Liao <sliao@google.com> |
Merge branch 'upstream' into sliao_d
|
cd485926f1ffda2eaa9adeea34e1e15c35ab5fba |
|
09-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[AST] Type::isVoidType() is trivial and should be inlined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
76e035a529775dc8fd31124f819745a33a085796 |
|
08-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[AST] Change Type::isIntegerType to be inlined(). It is very popular. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f9aa3635fccb3dc0925ef4d27dfa2b692a8e6a90 |
|
06-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
AST: Move several Type::is...Type() functions to be inline. - These functions are both (a) very commonly called and (b) excellent candidates for CSE in the callers in which they are commonly used. - That isHalfType() is hot makes me sad, but it is trivially when inlined (and a huge waste of time when not!!!). - The extra IsEnumDeclComplete() function is a hack to break the cycle between Type.h and Decl.h, I'm not sure of how to do this more cleanly, but am open to ideas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
91932089c31e1233f0c478b03412e90a65e07ad2 |
|
05-Mar-2012 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge-20120305 Conflicts: lib/Basic/Targets.cpp Change-Id: Ib76c138030a701355ce39a6eda1a89a79f401667
|
361ae9a83e1e3098adabaaad34d0925b30358f38 |
|
27-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Just drop the bitfield from ExtProtoInfo, this struct isn't even heap allocated so it doesn't hurt. MSVC < 10 still has the signed enum bitfield bug, making the top bit unusable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1ebae62697cd634c4134e61bac3823584f8c403a |
|
27-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Speculatively attempt to work around a hypothetical but unreproduced MSVC issue in r151494. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0e2e13f4daa71edac982633120531333b45e77b5 |
|
26-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Bit pack ExtProtoInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b5f2c419842d016892b9c976d4d6e91880e0e43a |
|
21-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Also mark Type's dump() as 'used' to make it available in libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f8af98286022f72157d84951b48fde5fb369ab29 |
|
12-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Within the body of a lambda expression, decltype((x)) for an id-expression 'x' will compute the type based on the assumption that 'x' will be captured, even if it isn't captured, per C++11 [expr.prim.lambda]p18. There are two related refactors that go into implementing this: 1) Split out the check that determines whether we should capture a particular variable reference, along with the computation of the type of the field, from the actual act of capturing the variable. 2) Always compute the result of decltype() within Sema, rather than AST, because the decltype() computation is now context-sensitive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
eefb3d5b49c844347f212073a7e975b8118fe8e9 |
|
10-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Track whether a function type has a trailing return type as type sugar. Use this to pretty-print such function types better, and to fix a case where we were not instantiating templates in lexical order. In passing, move the Variadic bit from Type's bitfields to FunctionProtoType to get the Type bitfields down to 32 bits. Also ensure that we always substitute the return type of a function when substituting explicitly-specified arguments, since that can cause us to bail out with a SFINAE error before we hit a hard error in parameter substitution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
200fa53fd420aa8369586f569dbece04930ad6a3 |
|
08-Feb-2012 |
John McCall <rjmccall@apple.com> |
Revise the SplitQualType interface to make it its own thing instead of a typedef of std::pair. This slightly improves type-safety, but mostly makes code using it clearer to read as well as making it possible to add methods to the type. Add such a method for efficiently single-step desugaring a split type. Add a method to single-step desugaring a locally-unqualified type. Implement both the SplitQualType and QualType methods in terms of that. Also, fix a typo ("ObjCGLifetime"). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d7a3e2c5f61cd4893f95b69a424fe4def3aa0f69 |
|
07-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. This seems to negatively affect compile time onsome ObjC tests (which use a lot of partial diagnostics I assume). I have to come up with a way to keep them inline without including Diagnostic.h everywhere. Now adding a new diagnostic requires a full rebuild of e.g. the static analyzer which doesn't even use those diagnostics. This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99. This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789. This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7. This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f. This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
01d08018b7cf5ce1601707cfd7a84d22015fc04e |
|
07-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce basic ASTs for lambda expressions. This covers: - Capturing variables by-reference and by-copy within a lambda - The representation of lambda captures - The creation of the non-static data members in the lambda class that store the captured variables - The initialization of the non-static data members from the captured variables - Pretty-printing lambda expressions There are a number of FIXMEs, both explicit and implied, including: - Creating a field for a capture of 'this' - Improved diagnostics for initialization failures when capturing variables by copy - Dealing with temporaries created during said initialization - Template instantiation - AST (de-)serialization - Binding and returning the lambda expression; turning it into a proper temporary - Lots and lots of semantic constraints - Parameter pack captures git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
00bd44d5677783527d7517c1ffe45e4d75a0f56f |
|
04-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h. Fix all the files that depended on transitive includes of Diagnostic.h. With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b70126a328f89937f46db42f9e3cba1592887c91 |
|
03-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
When a pack expansion occurs in the template argument list of an alias template without a corresponding parameter pack, don't immediately substitute the alias template. This is under discussion in the C++ committee, and may become ill-formed, but for now we match GCC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
95b68f94d28a4b94f4c3fb029b9f1690e1bb728b |
|
26-Jan-2012 |
Peter Collingbourne <peter@pcc.me.uk> |
Simplify {Record,Enum}Type::classof. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
18932a0f2a94a7813ec461d1118c39ecf8aa936f |
|
20-Jan-2012 |
Ted Kremenek <kremenek@apple.com> |
Add ability to specifiy 'restrict' on parameters of builtins, and correct this oversight for scanf functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
56ca8a9c0fabd65418e9b2fd85140f4ed7d3c187 |
|
17-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework the way in which we (de-)serialize the declarations corresponding to TagType and ObjCInterfaceType. Previously, we would serialize the definition (if available) or the canonical declaration (if no definition was available). However, this can end up forcing the deserialization of the definition even through we might not want to yet. Instead, always serialize the canonical declaration reference in the TagType/ObjCInterfaceType entry, and as part of loading a pending definition, update the "decl" pointer within the type node to point at the definition. This is more robust in hard-to-isolate cases where the *Type gets built and filled in before we see the definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
093ecc92afb70f6125d249eef31f40c0c57b7d24 |
|
14-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remember if a type has its visibility set explicitly or implicitly. With that, centralize the way we merge visibility, always preferring explicit over implicit and then picking the most restrictive one. Fixes pr10113 and pr11690. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d07cc36c71558b62889691184dd04655a33fd12a |
|
02-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Diagnose cases where the definition of a particular type is required, is known (to Clang), but is not visible because the module has not yet been imported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ffbe9b9c64ab2e94b9d48ec56e511f75826fc80a |
|
23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small. Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8d2dbbf9ddfd9d762a341d83f83d840ff68ce03d |
|
16-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
If there is a definition of an ObjCInterfaceDecl, make it the Decl returned from the corresponding ObjCInterfaceType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71d9a71d19099a6673750b47b32e9786803fa81d |
|
15-Nov-2011 |
Logan Chien <loganchien@google.com> |
Merge with clang upstream r144605 (Nov 15th 2011) Conflicts: include/clang-c/Index.h include/clang/AST/APValue.h include/clang/AST/DeclBase.h include/clang/AST/DeclObjC.h include/clang/Basic/DiagnosticSemaKinds.td include/clang/Serialization/ASTWriter.h lib/AST/APValue.cpp lib/AST/ASTImporter.cpp lib/AST/DeclObjC.cpp lib/AST/ExprConstant.cpp lib/Driver/ToolChains.cpp lib/Frontend/SerializedDiagnosticPrinter.cpp lib/Frontend/Warnings.cpp lib/Lex/HeaderSearch.cpp lib/Lex/LiteralSupport.cpp lib/Sema/SemaExpr.cpp lib/Sema/SemaInit.cpp lib/Sema/SemaPseudoObject.cpp test/Analysis/misc-ps.c test/Analysis/retain-release-path-notes.m test/CodeGen/string-literal-unicode-conversion.c test/CodeGenCXX/blocks.cpp test/Driver/crash-cleanup.c test/Misc/serialized-diags.c test/Misc/warning-flags.c tools/c-index-test/c-index-test.c tools/libclang/CXLoadedDiagnostic.cpp tools/libclang/IndexDecl.cpp tools/libclang/IndexTypeSourceInfo.cpp tools/libclang/Indexing.cpp tools/libclang/IndexingContext.cpp tools/libclang/IndexingContext.h tools/libclang/libclang.exports Change-Id: I6621e7d5d9a9d1e4cdec7b7b62ffa6dffaff375d
|
32509f1e60451d86e9fbc473b6e853ba10b5fd1e |
|
15-Nov-2011 |
John McCall <rjmccall@apple.com> |
Resolve placeholder expressions before trying to deduce 'auto'. Introduce a convenience method to make this a bit easier, and use it elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b5adc4636f653b37891792d2a279e889dab0935f |
|
09-Nov-2011 |
David Blaikie <dblaikie@gmail.com> |
Fixing 80 col violations (& removing any trailing whitespace on files I was touching anyway) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ba243b59a1074e0962f6abfa3bb9aa984eac1245 |
|
09-Nov-2011 |
David Blaikie <dblaikie@gmail.com> |
Fixing 80 col violations (& removing any trailing whitespace on files I was touching anyway) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
00a92abaf907802bfa4d6f38bdd242c6bfc34c09 |
|
21-Oct-2011 |
Logan Chien <loganchien@google.com> |
Merge with clang upstream Oct 20th 2011 (r142531) Change-Id: I42181113f38ce445f2a48694d6f654438562b71e
|
e0a22d06888c13989b3f72db319f1d498bf69153 |
|
18-Oct-2011 |
John McCall <rjmccall@apple.com> |
Macro metaprogramming for builtin types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
85def357129b6cdfd69a66ad0e6994506418a2a9 |
|
18-Oct-2011 |
John McCall <rjmccall@apple.com> |
In hasPlaceholderType(Kind) and isSpecificPlaceholderType(Kind), assert that the parameter is actually a placeholder type kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0ddaeb9b031070ec64afe92d9892875ac44df427 |
|
17-Oct-2011 |
John McCall <rjmccall@apple.com> |
Add a new placeholder type to represent "unbridged" casts in ARC. No semantic analysis yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6a2ccc51d9b8357e1433e0029d544d95c5877a5c |
|
15-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Convert stray doxygen comments to regular comments. They logically represent the fields in FunctionProtoType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b8706f95eae8f85af01a26eee899c5daf8d6fcde |
|
15-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Revert "Move doxygen comments to pair with the actual values." John convinced me this wasn't the right thing to do. I'll follow up with a second commit to make these non-doxygen comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aa4a99b4a62615db243f7a5c433169f2fc704420 |
|
15-Oct-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Provide half floating point support as a storage only type. Lack of half FP was a regression compared to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1f528a62258ee818e3df49016bff974a1459b5d1 |
|
14-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Move doxygen comments to pair with the actual values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a180f04c091bf3ede4fe292ba6a29d61da09e936 |
|
07-Oct-2011 |
John McCall <rjmccall@apple.com> |
Move type-checking for C-style casts in C into the now-misnamed SemaCXXCast.cpp. Should have no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b001de7458d17c17e6d8b8034c7cfcefd3b70c00 |
|
07-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Support for C1x _Atomic specifier (see testcase). This is primarily being committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic. Thanks to Jeffrey Yasskin for the thorough review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
30c42404202d2e2512e51efc6066bd614cfdb5a4 |
|
28-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When 'bool' is not a built-in type but is defined as a macro, print 'bool' rather than '_Bool' within types, to make things a bit more readable. Fixes <rdar://problem/10063263>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d6471f7c1921c7802804ce3ff6fe9768310f72b9 |
|
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename Diagnostic to DiagnosticsEngine as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9fe8c74a93ac8e92512615c5f83e7a328b3b0544 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Fix missing includes for llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1d9b3b25f7ac0d0195bba6b507a684fe5e7943ee |
|
09-Sep-2011 |
John McCall <rjmccall@apple.com> |
Give conversions of block pointers to ObjC pointers a different cast kind than conversions of C pointers to ObjC pointers. In order to ensure that we've caught every case, add asserts to CastExpr that strictly determine which cast kind is used for which kind of bit cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
85ea7aa961deac1d754f610af8062ae3f8b4e2a5 |
|
30-Aug-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Declare and define implicit move constructor and assignment operator. This makes the code duplication of implicit special member handling even worse, but the cleanup will have to come later. For now, this works. Follow-up with tests for explicit defaulting and enabling the __has_feature flag to come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4d9d157afb35742bc6348defbe45bc6de780ec77 |
|
04-Aug-2011 |
Kaelyn Uhrain <rikka@google.com> |
Match type names and give more info for out-of-line function definition errors. Having a function declaration and definition with different types for a parameter where the types have same (textual) name can occur when an unqualified type name resolves to types in different namespaces in each location. The error messages have been extended by adding notes that point to the first parameter of the function definition that doesn't match the declaration, instead of a generic "member declaration nearly matches". The generic message is still used in cases where the mismatch is not in the paramenter list, such as mismatched cv qualifiers on the member function itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5cee1195584fa8672253139c86e922daeda69b9e |
|
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for C++0x unicode string and character literals, from Craig Topper! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d102547dc44d064b40473a5a5166a8bb0dec99a |
|
20-Jul-2011 |
Logan Chien <loganchien@google.com> |
Merge with clang upstream r135574 (Jul 20th 2011) Change-Id: Ib6cc2ba08a63e4cf8febc05fb6e3f2ca58f1d71d
|
686775deca8b8685eb90801495880e3abdd844c2 |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
now that we have a centralized place to do so, add some using declarations for some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9594675cc1eb52a054de13c4a21e466643847480 |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
introduce a centralized place to introduce and inject llvm types into the clang namespace. There are a number of LLVM types that are used pervasively and it doesn't make sense to keep qualifying them. Start with casting operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
174cba922331b896949d02d8b1a05f1998ed98e1 |
|
16-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r135344 at Sat. 16th July 2011.
|
f1588660c109610e6a79c786b83b7c9bbd6ed31e |
|
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Improve name mangling for instantiation-dependent types that are not dependent. This covers an odd class of types such as int (&)[sizeof(sizeof(T() + T()))]; which involve template parameters but, because of some trick typically involving a form of expression that is never type-dependent, resolve down to a non-dependent type. Such types need to be mangled essentially as they were written in the source code (involving template parameters), rather than via their canonical type. In general, instantiation-dependent types should be mangled as they were written in the source. However, since we can't do that now without non-trivial refactoring of the AST (see the new FIXME), I've gone for this partial solution: only use the as-written-in-the-source mangling for these strange types that are instantiation-dependent but not dependent. This provides better compatibility with previous incarnations of Clang and with GCC. In the future, we'd like to get this right. Fixes <rdar://problem/9663282>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6af9f3ca25157379efd5c1caad82e9d01c17b9ff |
|
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix the desugaring of dependent decltype and typeof(expr) nodes. The isSugared() and desugar() routines previously provided were never actually called, since the corresponding types (DependentTypeOfExprType, DependentDecltypeType) don't have corresponding type classes. Outside of the current (incomplete) patch I'm working on, I haven't found a way to trigger this problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3c54415a4e1db09b210a466469c72d2582ce1d83 |
|
02-Jul-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r134305 at Sat. 2nd July 2011.
|
561f81243f665cf2001caadc45df505f826b72d6 |
|
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of instantiation dependence into Clang's AST. A type/expression/template argument/etc. is instantiation-dependent if it somehow involves a template parameter, even if it doesn't meet the requirements for the more common kinds of dependence (dependent type, type-dependent expression, value-dependent expression). When we see an instantiation-dependent type, we know we always need to perform substitution into that instantiation-dependent type. This keeps us from short-circuiting evaluation in places where we shouldn't, and lets us properly implement C++0x [temp.type]p2. In theory, this would also allow us to properly mangle instantiation-dependent-but-not-dependent decltype types per the Itanium C++ ABI, but we aren't quite there because we still mangle based on the canonical type in cases like, e.g., template<unsigned> struct A { }; template<typename T> void f(A<sizeof(sizeof(decltype(T() + T())))>) { } template void f<int>(A<sizeof(sizeof(int))>); and therefore get the wrong answer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
146060435c3efce95c95a092c7a1eb651cfb9ae0 |
|
30-Jun-2011 |
John McCall <rjmccall@apple.com> |
Preserve that a TemplateName was arrived at by substituting for a template template parameter. Uses to follow. I've also made the uniquing of SubstTemplateTemplateParmPacks use a ContextualFoldingSet as a minor space efficiency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1901dce8b1e78d0bf7072cccab695bd58c7eec21 |
|
30-Jun-2011 |
John McCall <rjmccall@apple.com> |
Document and check tighter assumptions about the TemplateName of a TemplateSpecializationType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7e47e1e7e6a2b83d903c97129f27e92f584c3dc2 |
|
27-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Reduce the size of the ExtInfo bitfield in FunctionType from 9 bits down to 8 by restricting the maximum allowed regparm value to 6 (previously it was 7). I need the extra bit in Type to handle instantiation-dependence. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b8b0313e84700b5c6d597b3be4de41c97b7550f1 |
|
24-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename objc_lifetime -> objc_ownership, and modify diagnostics to talk about 'ownership', not 'lifetime'. rdar://9477613. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7062281f240ef9c4fb343614fb2406532307c4a5 |
|
23-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r133678 at Thu. 23th Jun 2011.
|
2b1ad8b42bbbe00a1845e566f52f1941b8dbc725 |
|
23-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Move all of Sema's member-access-related checking out of SemaExpr.cpp and into a new file, SemaExprMember.cpp, bringing SemaExpr.cpp just under 10,000 lines of code (ugh). No functionality change, although I intend to do some refactoring of this code to address PR8368 at some point in the "near" future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c04985647bbd54d53b1f1219287eddce8ff530b5 |
|
20-Jun-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove this poor "abstraction" from the AST. Sorry! =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bc8d7f9fd4346cfcc285868be32b74e019a40f01 |
|
20-Jun-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Restructure the API in Type based on a conversation with Richard Smith. This makes 'isPointerLikeType' a little less confusing, and pulls the decay check into a separate interface that is much more clear and concrete. Also, just implement these as logical wrappers around other predicates. Having a switch based implementation isn't likely to be necessary. We can try to optimize them later if they show up on a profile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2af68e4761ed30181540dafb5572993daffa4910 |
|
19-Jun-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add test cases for false positives on -Wnull-arithmetic from Richard Trieu, and fix them by checking for array and function types as well as pointer types. I've added a predicate method on Type to bundle together the logic we're using here: isPointerLikeType(). I'd welcome better names for this predicate, this is the best I came up with. It's implemented as a switch to be a touch lighter weight than all the chained isa<...> casts that would result otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
16c8f9d68ae6d302083763d4733e728634717dec |
|
16-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r133163 at Fri. 17th Jun 2011.
|
a07398ed98ea2b55ad7a505a3aab18aed93b149f |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Restore correct use of GC barriers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f85e193739c953358c865005855253af4f68a497 |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting. Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7a614d8380297fcd2bc23986241905d97222948c |
|
11-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++11 in-class initialization of non-static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e5df885367b9e122ac11c89ddfbc62375695cdab |
|
10-Jun-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r132843 at Fri. 10th Jun 2011.
|
308742c87e2311c3f349092e5b823c3821e61b10 |
|
04-Jun-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Reimplement r132572 on top of a FoldingSet, thus hopefully solving both the self-host failures and Chandler's concerns. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c5c9b538de70124a57bee0adbfdd7853a582176e |
|
03-Jun-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Revert r132572 to figure out why it broke selfhost and clean it up as suggested by Chandler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8fd7722fce4e4f9549897699ec3a4c752613b214 |
|
03-Jun-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Begin implementing a cache of special member lookups. Currently only destructors are implemented but other special members are on the way, which is where the real benefits of this will be visible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
43c9791207a2bd7cef8b17e9bfc4dd87db21690f |
|
28-May-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream r132249 at Sat. 28th. May 2011.
|
ca63c200346c0ca9e00194ec6e34a5a7b0ed9321 |
|
25-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement a new type node, UnaryTransformType, designed to represent a type that turns one type into another. This is used as the basis to implement __underlying_type properly - with TypeSourceInfo and proper behavior in the face of templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
848afb0c1ff4571ca7a21927ecc2699ea2e7429a |
|
24-May-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r131958 at Tue. 24th May 2011.
|
575a1c9dc8dc5b4977194993e289f9eda7295c39 |
|
20-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce Type::isSignedIntegerOrEnumerationType() and Type::isUnsignedIntegerOrEnumerationType(), which are like Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also consider the underlying type of a C++0x scoped enumeration type. Audited all callers to the existing functions, switching those that need to also handle scoped enumeration types (e.g., those that deal with constant values) over to the new functions. Fixes PR9923 / <rdar://problem/9447851>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d01d2b2de449d68e6c44d99a12c0c1fc53222113 |
|
14-May-2011 |
Nowar Gu <nowar100@gmail.com> |
Merge upstream to r131335 at Sat. 14th May 2011.
|
feb375d31b7e9108b04a9f55b721d5e0c793a558 |
|
13-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement the __is_trivially_copyable type trait git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
377e1bd6853118c5b1718503569e5179c40f09b7 |
|
08-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Relax the conversion rules for Objective-C GC qualifiers a bit by allowing __weak and __strong to be added/dropped as part of implicit conversions (qualification conversions in C++). A little history: GCC lets one add/remove/change GC qualifiers just about anywhere, implicitly. Clang did roughly the same before, but we recently normalized the semantics of qualifiers across the board to get a semantics that we could reason about (yay). Unfortunately, this tightened the screws a bit too much for GC qualifiers, where it's common to add/remove these qualifiers at will. Overall, we're still in better shape than we were before: we don't permit directly changing the GC qualifier (e.g., __weak -> __strong), so type safety is improved. More importantly, we're internally consistent in our handling of qualifiers, and the logic that allows adding/removing GC qualifiers (but not adding/removing address spaces!) only touches two obvious places. Fixes <rdar://problem/9402499>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5f3827cabd526d0dd5f291d46c310103cebe7a44 |
|
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple of comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3e4c6c4c79a03f5cb0c4671d7c282d623c6dc35e |
|
05-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++0x alias templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5d65e34b08b3e57a4da834195757d0d15baaffd0 |
|
01-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch getAs to castAs (didn't know about this before!) and simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aaf147be3cc7403d8f7889d363421bb291ef23f2 |
|
01-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move several more type traits' implementations into the AST. A few were already present in the AST, and I added the ones that weren't. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b7efff4bae117604f442bb6859c844f90b15f3ff |
|
01-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the interface name for both TemplateTypeParmType and SubstTemplateTypeParmType to be 'getIdentifier' instead of 'getName' as it returns an identifier. This makes them more consistent with the NamedDecl interface. Also, switch back to using this interface to acquire the indentifier in TypePrinter.cpp. I missed this in r130628. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4fb86f8c4585e53c21c847ad3de9e3b2de123cd9 |
|
01-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Re-applies the patch first applied way back in r106099, with accompanying fixes to make it work today. The core of this patch is to provide a link from a TemplateTypeParmType back to the TemplateTypeParmDecl node which declared it. This in turn provides much more precise information about the type, where it came from, and how it functions for AST consumers. To make the patch work almost a year after its first attempt, it needed serialization support, and it now retains the old getName() interface. Finally, it requires us to not attempt to instantiate the type in an unsupported friend decl -- specifically those coming from template friend decls but which refer to a specific type through a dependent name. A cleaner representation of the last item would be to build FriendTemplateDecl nodes for these, storing their template parameters etc, and to perform proper instantation of them like any other template declaration. They can still be flagged as unsupported for the purpose of access checking, etc. This passed an asserts-enabled bootstrap for me, and the reduced test case mentioned in the original review thread no longer causes issues, likely fixed at somewhere amidst the 24k revisions that have elapsed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
769d0cc72b1831785596d0e76f327bdb887823be |
|
30-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
When comparing parameters of reference-to-qualified type during partial ordering of function templates, use a simple superset relationship rather than the convertibility-implying isMoreQualifiedThan/compatibilyIncludes relationship. Fixes partial ordering between references and address-space-qualified references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
636a617cc6021a4366380b3ce673f4472f3d99db |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Hoist all of the type-specific trait logic for __is_standard_layout into a Type method isStandardLayoutType, to keep our user API matching the type trait builtins as closely as possible. Also, implement it in terms of other Type APIs rather than in terms of other type traits. This models the implementation on that of isLiteralType and isTrivialType. There remain some common problems with these traits still, so this is a bit of a WIP. However, we can now fix all of these traits at the same time and in a consistent manner. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a8225449421e8c1e996a7c48300521028946482a |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Completely re-implement the core logic behind the __is_standard_layout type trait. The previous implementation suffered from several problems: 1) It implemented all of the logic in RecordType by walking over every base and field in a CXXRecordDecl and validating the constraints of the standard. This made for very straightforward code, but is extremely inefficient. It also is conceptually wrong, the logic tied to the C++ definition of standard-layout classes should be in CXXRecordDecl, not RecordType. 2) To address the performance problems with #1, a cache bit was added to CXXRecordDecl, and at the completion of every C++ class, the RecordType was queried to determine if it was a standard layout class, and that state was cached. Two things went very very wrong with this. First, the caching version of the query *was never called*. Even within the recursive steps of the walk over all fields and bases the caching variant was not called, making each query a full *recursive* walk. Second, despite the cache not being used, it was computed for every class declared, even when the trait was never used in the program. This probably significantly regressed compile time performance for edge-case files. 3) An ASTContext was required merely to query the type trait because querying it performed the actual computations. 4) The caching bit wasn't managed correctly (uninitialized). The new implementation follows the system for all the other traits on C++ classes by encoding all the state needed in the definition data and building up the trait incrementally as each base and member are added to the definition of the class. The idiosyncracies of the specification of standard-layout classes requires more state than I would like; currently 5 bits. I could eliminate one of the bits easily at the expense of both clarity and resilience of the code. I might be able to eliminate one of the other bits by computing its state in terms of other state bits in the definition. I've already done that in one place where there was a fairly simple way to achieve it. It's possible some of the bits could be moved out of the definition data and into some other structure which isn't serialized if the serialized bloat is a problem. That would preclude serialization of a partial class declaration, but that's likely already precluded. Comments on any of these issues welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
43fa33b4bedc28d2faa17d678ad1f40eb42817a1 |
|
29-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Relax the non-POD memset warning to use the less restrictive C++11 definition of POD. Specifically, this allows certain non-aggregate types due to their data members being private. The representation of C++11 POD testing is pretty gross. Any suggestions for improvements there are welcome. Especially the name 'isCXX11PODType()' seems truly unfortunate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
61d0b6baf47cf411f6c0f6ddb4acffcfeec724f1 |
|
28-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
More cleanup of template argument deduction and its handling of non-CVR qualifiers. We can now properly match address-space--qualified references during template argument deduction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
20c0da7787c9a7d2529e42a4a91d777778595d74 |
|
28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
t/clang/type-traits Patch authored by John Wiegley. These type traits are used for parsing code that employs certain features of the Embarcadero C++ compiler. Several of these constructs are also desired by libc++, according to its project pages (such as __is_standard_layout). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
864c041e118155c2b1ce0ba36942a3da5a4a055e |
|
26-Apr-2011 |
John McCall <rjmccall@apple.com> |
Make yet another placeholder type, this one marking that an expression is a bound member function, i.e. something of the form 'x.f' where 'f' is a non-static member function. Diagnose this in the general case. Some of the new diagnostics are probably worse than the old ones, but we now get this right much more universally, and there's certainly room for improvement in the diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b7e9589bce9852b4db9575f55ac9137572147eb5 |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement basic __is_trivial type-trait support, enough to close PR9472. This introduces a few APIs on the AST to bundle up the standard-based logic so that programmatic clients have access to exactly the same behavior. There is only one serious FIXME here: checking for non-trivial move constructors and move assignment operators. Those bits need to be added to the declaration and accessors provided. This implementation should be enough for the uses of __is_trivial in libstdc++ 4.6's C++98 library implementation. Ideas for more thorough test cases or any edge cases missing would be appreciated. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
162e1c1b487352434552147967c3dd296ebee2f7 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Support for C++11 (non-template) alias declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fc8f0e14ad142ed811e90fbd9a30e419e301c717 |
|
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix a bunch of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
414d8967e1d760ea1e19a4aca96b13777a8cf8c5 |
|
14-Apr-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement ARM pcs attribute. Basically it's another way of calling convention selection (AAPCS or AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86. In particular, all library functions should always be AAPCS regardless of floating point ABI used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2eba7abeab4abddd28644200397f8a1d5badccdd |
|
09-Apr-2011 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Merge with clang upstream r129173 (Apr 8th 2011) Upstream Revision git-id: 0ff32595e4b92c5bdee78946b39f9e990b20cc90 svn-id: 129173
|
a49218e17bcbb1acde0245773173e2c0c42f4f19 |
|
09-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR8369: make __attribute((regparm(0))) work correctly. Original patch by pageexec@freemail.hu, tweaks by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1de4d4e8cb2e9c88809fea8092bc6e835a5473d2 |
|
07-Apr-2011 |
John McCall <rjmccall@apple.com> |
Basic, untested implementation for an "unknown any" type requested by LLDB. The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
759abb4d9ec14ae32104a9677b60f0542b60d1d8 |
|
06-Apr-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix lookup for class messages sent to qualified-class types such that protocols are seached first. Fixes // rdar://9224670 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f445debe3a6825e6528655db0906ce4fa41240ea |
|
01-Apr-2011 |
csmon <csmon@csmon-desktop.(none)> |
Merge branch 'upstream' into logan-fastforward-20110320
|
2234873111009eb8655d63362cedc422eb9fc517 |
|
26-Mar-2011 |
John McCall <rjmccall@apple.com> |
Allow GC qualifiers to be added/removed by conversions from/to void* without a warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8e02635c9c276720a1e6f926b33303a53cebe9c7 |
|
18-Mar-2011 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Merge with clang upstream r127869 (Mar 18th 2011)
|
8026f6d82f7fa544bc0453714fe94bca62a1196e |
|
13-Mar-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Instead of storing an ASTContext* in FunctionProtoTypes with computed noexcept specifiers, unique FunctionProtoTypes with a ContextualFoldingSet, as suggested by John McCall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
60618fa7f88d5162bb5b40988b6b38d4d75d6fc6 |
|
12-Mar-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Propagate the new exception information to FunctionProtoType. Change the interface to expose the new information and deal with the enormous fallout. Introduce the new ExceptionSpecificationType value EST_DynamicNone to more easily deal with empty throw specifications. Update the tests for noexcept and fix the various bugs uncovered, such as lack of tentative parsing support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27d70656d3ce7c9e030b6dea468cfc96687010d5 |
|
09-Mar-2011 |
Logan Chien <tzuhsiang.chien@gmail.com> |
Merge with clang upstream (Nov 6th 2011)
|
c2f3e7f42c8bf9e8d4393a6e8c4762dafc4f28dd |
|
07-Mar-2011 |
John McCall <rjmccall@apple.com> |
The conditional needs to be pushed before the branch. Make the test less trivial to check this. Adjust for style. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8b5b4099c61a136e9a1714c4d8a593febe942268 |
|
06-Mar-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reinstate r127112, "Propagate new-style exception spec information to ExtProtoInfo.", this time with the missing header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
708a86690469474f0a8149abca71aa4c62bf9710 |
|
06-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r127112, "Propagate new-style exception spec information to ExtProtoInfo." It seems missing "clang/Basic/ExceptionSpecificationType.h". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
06bfa84588658d721094f383d6950e75100c4c4c |
|
05-Mar-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Propagate new-style exception spec information to ExtProtoInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9c6082fe89c61af697f017aa80937581cc2128d8 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Revert "Add CC_Win64ThisCall and set it in the necessary places." This reverts commit 126863. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
88d117c2eedd7c5bec57ac983a98d5e12bdd2cc6 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add CC_Win64ThisCall and set it in the necessary places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ca34b8f06d560b4f604934d57b2ad311c4228e32 |
|
02-Mar-2011 |
Shih-wei Liao <sliao@google.com> |
Merge "Assorted work leading towards the elimination of CK_Unknown."
|
3c8dec3136c81c69094121b9890b7f443e4d5c56 |
|
02-Mar-2011 |
Shih-wei Liao <sliao@google.com> |
Merge "Increase VectorTypeBitfields::VecKind field from 2 to 3 bits. With the addition of 2 enum values for Neon vectors, this field must now hold 6 different values and so requires 3 bits. Make the NumElements field one bit smaller to compensate."
|
2c66aff116466318cc5959b55130cf54cc123578 |
|
02-Mar-2011 |
Shih-wei Liao <sliao@google.com> |
Merge "Add a separate NeonPolyVector kind to distinguish polynomial vector types. Add support for mangling those types according to ARM's ABI."
|
026ae918949e2b3a1eddb04a534b72ed50621830 |
|
02-Mar-2011 |
Shih-wei Liao <sliao@google.com> |
Merge "Add a variant of GCC-style vector types for ARM NEON. NEON vector types need to be mangled in a special way to comply with ARM's ABI, similar to some of the AltiVec-specific vector types. This patch is mostly just renaming a bunch of "AltiVecSpecific" things, since they will no longer be specific to AltiVec. Besides that, it just adds the new "NeonVector" enum."
|
053ec969e3023e4b4a666546476ff74e6bfdfd9a |
|
27-Feb-2011 |
Logan <tzuhsiang.chien@gmail.com> |
Merge with clang upstream Nov 10th 2010.
|
34b41d939a1328f484511c6002ba2456db879a29 |
|
20-Feb-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement the C++0x deduced 'auto' feature. This fixes PR 8738, 9060 and 9132. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0d70d71ccbc4f7f59cadb759f61b7172a149676c |
|
13-Feb-2011 |
John McCall <rjmccall@apple.com> |
Look through array types when deciding whether a field requires non-trivial destruction in the destructor-aliases logic. Fixes PR 9197. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d0370f59e79702ac908c81bf556519f91e9ca297 |
|
27-Jan-2011 |
John McCall <rjmccall@apple.com> |
Provide Type::castAs<>, which is to getAs<> what cast<> is to dyn_cast<>. Also provide a method to grab the base element type of a type without stressing out over qualifiers (but give it a nice scary name). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c938c1668b4fd12af154e965dd935a89e4801a70 |
|
26-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Rvalue references for *this: - Add ref-qualifiers to the type system; they are part of the canonical type. Print & profile ref-qualifiers - Translate the ref-qualifier from the Declarator chunk for functions to the function type. - Diagnose mis-uses of ref-qualifiers w.r.t. static member functions, free functions, constructors, destructors, etc. - Add serialization and deserialization of ref-qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3b6575108a5b6d8b92ac3a9a7794bf6c3a210907 |
|
19-Jan-2011 |
John McCall <rjmccall@apple.com> |
Change the canonical representation of array types to store qualifiers on the outermost array types and not on the element type. Move the CanonicalType member from Type to ExtQualsTypeCommonBase; the canonical type on an ExtQuals node includes the qualifiers on the ExtQuals. Assorted optimizations enabled by this change. getQualifiers(), hasQualifiers(), etc. should all now implicitly look through array types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f4c7371fb1d3cebcfb40abad4537bb82515704ea |
|
19-Jan-2011 |
John McCall <rjmccall@apple.com> |
Change QualType::getTypePtr() to return a const pointer, then change a thousand other things which were (generally inadvertantly) relying on that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
62c28c831bbf207cc36e683e7c321fc33bf8928c |
|
18-Jan-2011 |
John McCall <rjmccall@apple.com> |
Generalize some operations on qualifiers. QualType::getQualifiers() and ::getCVRQualifiers() now look through array types, like all the other standard queries. Also, make a 'split' variant of getUnqualifiedType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cded4f649cd4b7ba7d461c25c6482ef52b8d3a2a |
|
14-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Keep track of the number of expansions to be produced from a type pack expansion, when it is known due to the substitution of an out parameter pack. This allows us to properly handle substitution into pack expansions that involve multiple parameter packs at different template parameter levels, even when this substitution happens one level at a time (as with partial specializations of member class templates and the signatures of member function templates). Note that the diagnostic we provide when there is an arity mismatch between an outer parameter pack and an inner parameter pack in this case isn't as clear as the normal diagnostic for an arity mismatch. However, this doesn't matter because these cases are very, very rare and (even then) only typically occur in a SFINAE context. The other kinds of pack expansions (expression, template, etc.) still need to support optional tracking of the number of expansions, and we need the moral equivalent of SubstTemplateTypeParmPackType for substituted argument packs of template template and non-type template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c3069d618f4661d923cb1b5c4525b082fce73b04 |
|
14-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Start implementing support for substitution into pack expansions that involve template parameter packs at multiple template levels that occur within the signatures members of class templates (and partial specializations thereof). This is a work-in-progress that is deficient in several ways, notably: - It only works for template type parameter packs, but we need to also support non-type template parameter packs and template template parameter packs. - It doesn't keep track of the lengths of the substituted argument packs in the expansion, so it can't properly diagnose length mismatches. However, this is a concrete step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4ba2a17694148e16eaa8d3917f657ffcd3667be4 |
|
12-Jan-2011 |
Jay Foad <jay.foad@gmail.com> |
PR3558: mark "logically const" accessor methods in ASTContext as const, and mark the fields they use as mutable. This allows us to remove a few const_casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
170464b7c0a2c0c86f2821f14a46f0d540cb5e94 |
|
07-Jan-2011 |
Francois Pichet <pichet2000@gmail.com> |
Prefix all attribute enumerators with attr_ for consistency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3cd47e7883dbfce73189b583850cea81e1d1d261 |
|
07-Jan-2011 |
Francois Pichet <pichet2000@gmail.com> |
Do not use cdecl, fastcall, stdcall etc.. as identifier name. They are reserved keywords at least on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f5c65ffbd7374b6c8d9f1e361041578640cab320 |
|
06-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement template argument deduction from a call to a function template whose last parameter is a parameter pack. This allows us to form a call to, e.g., template<typename ...Args1, typename ...Args2> void f(std::pair<Args1, Args2> ...pairs); given zero or more instances of "pair". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d156a7b1b2771e191f2f5a45a7b7a694129463b |
|
06-Jan-2011 |
John McCall <rjmccall@apple.com> |
Introduce an AttributedType, but don't actually use it anywhere yet. The initial TreeTransform is a cop-out, but it's more-or-less equivalent to what we were doing before, or rather what we're doing now and might eventually stop doing in favor of using this type. I am simultaneously intrigued by the possibilities of rebuilding a dependent Attri git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
711c52bb20d0c69063b52a99826fb7d2835501f1 |
|
05-Jan-2011 |
John McCall <rjmccall@apple.com> |
Refactor the application of type attributes so that attributes from the declaration-specifiers and on the declarator itself are moved to the appropriate declarator chunk. This permits a greatly simplified model for how to apply these attributes, as well as allowing a much more efficient query for the GC attribute. Now all qualifier queries follow the same basic strategy of "local qualifiers, local qualifiers on the canonical type, then look through arrays". This can be easily optimized by changing the canonical qualified-array-type representation. Do not process type attributes as decl attributes on declarations with declarators. When computing the type of a block, synthesize a prototype function declarator chunk if the decl-spec type was not a function. This simplifies the logic for building block signatures. Change the logic which inserts an objc_read_weak on a block literal to only fire if the block has a __weak __block variable, rather than if the return type of the block is __weak qualified, which is not actually a sensible thing to ask. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2fdc5e8199e1e239620f2faae88997153703e16f |
|
05-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Many of the built-in operator candidates introduced into overload resolution require that the pointed-to type be an object type, but we weren't filtering out non-object types. Do so, fixing PR7851. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3f59c975aa5d047f7edd1b900b5e885c38af0ef7 |
|
26-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
The -fshort-wchar option causes wchar_t to become unsigned, in addition to being 16-bits in size. Implement this by splitting WChar into two enums, like we have for char. This fixes a miscompmilation of XULRunner, PR8856. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fd03843f0597de5eeced69ca9ae45c478fb2b153 |
|
23-Dec-2010 |
John McCall <rjmccall@apple.com> |
Kill RecordType::getAddressSpace() and its fixme; that's just not how address spaces work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dace95b13e2ceb0c3ec8de6babd926dc5114e1e5 |
|
20-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Clean up the printing of template argument packs; previously, we were getting extra "<>" delimiters around template argument packs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7536dd5e6c99584481b7dab68b7e7d8df9c54054 |
|
20-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new type, PackExpansionType, to capture types that are pack expansions, e.g. given template<typename... Types> struct tuple; template<typename... Types> struct tuple_of_refs { typedef tuple<Types&...> types; }; the type of the "types" typedef is a PackExpansionType whose pattern is Types&. This commit introduces support for creating pack expansions for template type arguments, as above, but not for any other kind of pack expansion, nor for any form of instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
723df245307a530da5433dfb43accf187dc3e243 |
|
14-Dec-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added missing IgnoreParens(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
373920bd733b1d28fe7bf209945a62eb9248d948 |
|
14-Dec-2010 |
John McCall <rjmccall@apple.com> |
Improve some comments, shrink FunctionType::ExtInfo, and fix a bug found by valgrind where we were doing the wrong thing in the presence of invalid exception specs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e23cf437fe76b1ed02d63c3f61b456fd48a915f5 |
|
14-Dec-2010 |
John McCall <rjmccall@apple.com> |
Restore r121752 without modification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5bfe232d1f07a6fd160fcf82c277c055a412a1c0 |
|
14-Dec-2010 |
John McCall <rjmccall@apple.com> |
Pull out r121752 in case it's causing the selfhost breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0e88aa7100da32acc63bc8a4dcb946ed517868f1 |
|
14-Dec-2010 |
John McCall <rjmccall@apple.com> |
Factor out most of the extra state in a FunctionProtoType into a separate class to be passed around. The line between argument and return types and everything else is kindof vague, but I think it's justifiable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d0937224f383c7cc72c947119380f9713a070c73 |
|
13-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Variadic templates: extend Type, NestedNameSpecifier, TemplateName, and TemplateArgument with an operation that determines whether there are any unexpanded parameter packs within that construct. Use this information to diagnose the appearance of the names of parameter packs that have not been expanded (C++ [temp.variadic]p5). Since this property is checked often (every declaration, ever expression statement, etc.), we extend Type and Expr with a bit storing the result of this computation, rather than walking the AST each time to determine whether any unexpanded parameter packs occur. This commit is deficient in several ways, which will be remedied with future commits: - Expr has a bit to store the presence of an unexpanded parameter pack, but it is never set. - The error messages don't point out where the unexpanded parameter packs were named in the type/expression, but they should. - We don't check for unexpanded parameter packs in all of the places where we should. - Testing is sparse, pending the resolution of the above three issues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4472fc641ea3069463798fb56a04043c28ea2910 |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Replace two QualType::getTypePtrOrNull() calls with QualType::getTypePtr(). It turns out that cast_or_null/dyn_cast_or_null don't actually use simplify_type, so they're guaranteed to operator on non-NULL QualType or CanQualType objects. Good for a 0.6% win on 403.gcc's combine.c with -emit-llvm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1ab55e9bb87d98bff1d42c7a0ee502c64755d9f5 |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the branching in QualType::getTypePtr() by providing a common base for ExtQuals and Type that stores the underlying type pointer. This results in a 2% performance win for -emit-llvm on a typical C file, with 1% memory growth in the AST. Note that there is an API change in this optimization: QualType::getTypePtr() can no longer be invoked on a NULL QualType. If the QualType might be NULL, use QualType::getTypePtrOrNull(). I've audited all uses of getTypePtr() in the code base and changed the appropriate uses over to getTypePtrOrNull(). A future optimization opportunity would be to distinguish between cast/dyn_cast and cast_or_null/dyn_cast_or_null; for the former, we could use getTypePtr() rather than getTypePtrOrNull(), to take another branch out of the cast/dyn_cast implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
075f8f1b6bed4d1b224c74f87508534cc6392ce6 |
|
10-Dec-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added ParenType type node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c3c0af36bac3d71f61dd758585ab307892545de4 |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Silence GCC warning about comparisons between enumerators of different types git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
49f4e1cbd839da27ff4814b4ea6d85a79f786cbd |
|
10-Dec-2010 |
John McCall <rjmccall@apple.com> |
It's kindof silly that ExtQuals has an ASTContext&, and we can use that space better. Remove this reference. To make that work, change some APIs (most importantly, getDesugaredType()) to take an ASTContext& if they need to return a QualType. Simultaneously, diminish the need to return a QualType by introducing some useful APIs on SplitQualType, which is just a std::pair<const Type *, Qualifiers>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
55270e4bde91bd30d16086ae71f0f65caf3b8a51 |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Update ExtQuals comment to reflect the expansion of the fast qualifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
34e80e94a21eb1ac2a9405d918e711e8b12256a9 |
|
10-Dec-2010 |
John McCall <rjmccall@apple.com> |
Optimize memory usage of FunctionProtoType on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f7616b9067790757f4e12e834b216c53c8c04ebe |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Move the "volatile" bit into QualType's "fast" qualifier set, increasing the required type alignment from 8 to 16. This provides a 2.5% speedup for -fsyntax-only on a token-cached Cocoa.h, while only increasing memory consumption in the ASTContext by 0.8%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b7b2688bab0eac053d3e2938b329c8e523fd252b |
|
01-Dec-2010 |
John McCall <rjmccall@apple.com> |
Eliminate vtables from the Type hierarchy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6b4052d120c3ef414a822b3cff063432a1df3186 |
|
15-Nov-2010 |
John McCall <rjmccall@apple.com> |
Assorted work leading towards the elimination of CK_Unknown. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
daa8e4e888758d55a7a759dd4a91b83921cef222 |
|
15-Nov-2010 |
John McCall <rjmccall@apple.com> |
Assorted work leading towards the elimination of CK_Unknown. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
87fa7564c1e8b7894c1a9f646cb1294c8c2a7f9d |
|
12-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Increase VectorTypeBitfields::VecKind field from 2 to 3 bits. With the addition of 2 enum values for Neon vectors, this field must now hold 6 different values and so requires 3 bits. Make the NumElements field one bit smaller to compensate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cc3b946c35c4372272034e6f0663089477a9a5bd |
|
12-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Increase VectorTypeBitfields::VecKind field from 2 to 3 bits. With the addition of 2 enum values for Neon vectors, this field must now hold 6 different values and so requires 3 bits. Make the NumElements field one bit smaller to compensate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1ab6481f698c0995cb294ac1a29d21bfb970c41c |
|
12-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a separate NeonPolyVector kind to distinguish polynomial vector types. Add support for mangling those types according to ARM's ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
491328c90c00ecad6ad27fa0ab3cdf9195a4a820 |
|
12-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a separate NeonPolyVector kind to distinguish polynomial vector types. Add support for mangling those types according to ARM's ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b3e547db227afec80fd921b4dbff66bd91da992f |
|
10-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a variant of GCC-style vector types for ARM NEON. NEON vector types need to be mangled in a special way to comply with ARM's ABI, similar to some of the AltiVec-specific vector types. This patch is mostly just renaming a bunch of "AltiVecSpecific" things, since they will no longer be specific to AltiVec. Besides that, it just adds the new "NeonVector" enum. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e86d78cf4754a6aef2cf9a33d847aa15338e276f |
|
10-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a variant of GCC-style vector types for ARM NEON. NEON vector types need to be mangled in a special way to comply with ARM's ABI, similar to some of the AltiVec-specific vector types. This patch is mostly just renaming a bunch of "AltiVecSpecific" things, since they will no longer be specific to AltiVec. Besides that, it just adds the new "NeonVector" enum. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
82254439b368de855d1e66440071017a1f2d4f0a |
|
22-Oct-2010 |
John McCall <rjmccall@apple.com> |
Substantially revise how clang computes the visibility of a declaration to more closely parallel the computation of linkage. This gets us to a state much closer to what gcc emits, modulo bugs, which will undoubtedly arise in abundance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1fb0caaa7bef765b85972274e3b434af2572c141 |
|
22-Oct-2010 |
John McCall <rjmccall@apple.com> |
Substantially revise how clang computes the visibility of a declaration to more closely parallel the computation of linkage. This gets us to a state much closer to what gcc emits, modulo bugs, which will undoubtedly arise in abundance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1e75edda2f03c9416845f86c8f69dfaff6eb262b |
|
19-Oct-2010 |
John McCall <rjmccall@apple.com> |
Petty space optimizations in ElaboratedType and DependentNameType. Petty time optimization in TemplateTypeParmType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
77be2b485f65ad134b3804a6930d5df9d0d974ce |
|
19-Oct-2010 |
John McCall <rjmccall@apple.com> |
Petty space optimizations in ElaboratedType and DependentNameType. Petty time optimization in TemplateTypeParmType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b366986ba90b62e13a9562822179f488c1febcc5 |
|
15-Oct-2010 |
Francois Pichet <pichet2000@gmail.com> |
bool bit fields are causing problems with MSVC. Replace them with unsigned bit fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bdb5b0e8ad8ed297ad01eb2ccd0d6d5ed6058033 |
|
15-Oct-2010 |
Francois Pichet <pichet2000@gmail.com> |
bool bit fields are causing problems with MSVC. Replace them with unsigned bit fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
084ff0118a8a97513e725202a9ee4b35ed78a36c |
|
14-Oct-2010 |
John McCall <rjmccall@apple.com> |
At Fariborz's request, a somewhat cleaner bit-combining hack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b870b88df784c2940efce448ebfaf54dece14666 |
|
14-Oct-2010 |
John McCall <rjmccall@apple.com> |
At Fariborz's request, a somewhat cleaner bit-combining hack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f11e7f7a1d04438e9bacdcfb04a110ea01dcadee |
|
14-Oct-2010 |
John McCall <rjmccall@apple.com> |
Compress bit fields / enums from ReferenceType, BuiltinType, FunctionType, and ObjCObjectType into Type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71c3673d1e3756d8ef3cbc559fcad1d0b2f18a1f |
|
14-Oct-2010 |
John McCall <rjmccall@apple.com> |
Compress bit fields / enums from ReferenceType, BuiltinType, FunctionType, and ObjCObjectType into Type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
435c73e3d72449bd1d8c791f14550caf38a393aa |
|
13-Oct-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Update Type::BitsRemainingInType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
43c0a4cae05cf78225d5996cf7d62d7a133d665c |
|
13-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Update Type::BitsRemainingInType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b0efb27f8928c8cdfd4b94b547ec9d87e31066cd |
|
13-Oct-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce a bit into Type that keeps track of whether there are any unnamed or local types within that type. This bit is cached along with the linkage of a type, so that it can be recomputed (e.g., when we see that a typedef has given a name to an anonymous declaration). Use this bit when checking C++03 [temp.arg.type]p2, so that we don't walk template argument types repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db4d4bb03df52920cf379797a7ff5c9900f938a6 |
|
13-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a bit into Type that keeps track of whether there are any unnamed or local types within that type. This bit is cached along with the linkage of a type, so that it can be recomputed (e.g., when we see that a typedef has given a name to an anonymous declaration). Use this bit when checking C++03 [temp.arg.type]p2, so that we don't walk template argument types repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e5ab6f7366103282ac9d851bd66b4a0d5e8e6819 |
|
13-Oct-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Compute whether a type is variably modified as we build the type, rather than walking the type's structure every time we request this information. Performance optimization; no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
35495eb14f22c4e96956912e23ca2a433227ad8c |
|
13-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Compute whether a type is variably modified as we build the type, rather than walking the type's structure every time we request this information. Performance optimization; no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
13e47eecb1470d59e399952280e68c16e302c75d |
|
12-Oct-2010 |
John McCall <rjmccall@apple.com> |
Add some infrastructure for dealing with expressions of 'placeholder' type, i.e. expressions with an internally-convenient type which should not be appearing in generally valid, complete ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2a984cad5ac3fdceeff2bd99daa7b90979313475 |
|
12-Oct-2010 |
John McCall <rjmccall@apple.com> |
Add some infrastructure for dealing with expressions of 'placeholder' type, i.e. expressions with an internally-convenient type which should not be appearing in generally valid, complete ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
df8e391abb083ea901108528cbd505980dccf695 |
|
09-Oct-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a bit by me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1274ccd90aec0b205fc838c3d504821ccfb55482 |
|
09-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a bit by me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
14b135ed28e79e44f1e3237209d24cac3af9e91b |
|
06-Oct-2010 |
John McCall <rjmccall@apple.com> |
Use a more conventional/efficient implementation for isEnumeralType() and isBuiltinType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3ff83dd534ccc828203670ce3f5125a4eb4199f8 |
|
06-Oct-2010 |
John McCall <rjmccall@apple.com> |
Use a more conventional/efficient implementation for isEnumeralType() and isBuiltinType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0f881c3735a8f5962943d799105adb63a873a2c2 |
|
24-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch implements passing arrays to functions expecting vla. Implements pr7827. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
745da3a5bb4ea35f93f50301e7fbbb7d78d3b6bb |
|
24-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch implements passing arrays to functions expecting vla. Implements pr7827. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3049ec9961d1a1f0570a24dc601e6a362129b35d |
|
10-Sep-2010 |
Shih-wei Liao <sliao@google.com> |
Merge changes from upstream repository (r112367) Change-Id: Ib88c8fd890e7c8c5597ea2b86cfa934438965c08
|
545f1ccf514d62d9ad5bb1c1e1063c945d2cf897 |
|
08-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Reverse r113397 until we decide what to do with use of 'struct objc_object*' for 'is' (and others) in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
56a965c0f77c9e6bffd65cc8f8796442a8527381 |
|
08-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Reverse r113397 until we decide what to do with use of 'struct objc_object*' for 'is' (and others) in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6fa68948f7d604946617deb5de14ce3d7905b21c |
|
08-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a crash when overloading id with objc_object*. Radar 8400356. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d1877953f06df6df9b2cd5fc04b49e80eec66019 |
|
08-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a crash when overloading id with objc_object*. Radar 8400356. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
23cf1f9d0f258b16fb5c07a14ceb7aba4562903e |
|
03-Sep-2010 |
Dawn Perchik <dawn@burble.org> |
Add symantic support for the Pascal calling convention via "__attribute((pascal))" or "__pascal" (and "_pascal" under -fborland-extensions). Support still needs to be added to llvm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
52fc314e1b5e1baee6305067cf831763d02bd243 |
|
03-Sep-2010 |
Dawn Perchik <dawn@burble.org> |
Add symantic support for the Pascal calling convention via "__attribute((pascal))" or "__pascal" (and "_pascal" under -fborland-extensions). Support still needs to be added to llvm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6b5f410f4ef7d4e2300df3cec8ef30810e10dfc7 |
|
26-Aug-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
When code-completing a potential call to a C++ non-static member function, take into account the qualifiers on the object argument (e.g., what will become "this"), filtering around uncallable member functions and giving a slight priority boost to those with exactly-matching qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3cdee121daa13403335094ce0e181b9911c2124c |
|
26-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When code-completing a potential call to a C++ non-static member function, take into account the qualifiers on the object argument (e.g., what will become "this"), filtering around uncallable member functions and giving a slight priority boost to those with exactly-matching qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6ae2325ec3b27aae178267de58fe35acf2027b91 |
|
23-Aug-2010 |
John McCall <rjmccall@apple.com> |
Abstract out everything having to do with member pointers into the ABI class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0bab0cdab751248ca389a5592bcb70eac5d39260 |
|
23-Aug-2010 |
John McCall <rjmccall@apple.com> |
Abstract out everything having to do with member pointers into the ABI class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d401c08eaebd14b9fa6440513c764a7342d0adea |
|
22-Aug-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Eliminate a stale assertion. Fixes Clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db68e28c05a67735211e688009890cf834c22e75 |
|
22-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate a stale assertion. Fixes Clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
161f47b721242aa98301da22da5c7274b5644112 |
|
20-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fa78c91c54dd99ec61a9e27e6b74a549f5c9fa9c |
|
20-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
461310d47dfb77ed4b176cfa19358bddeb732a35 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
More PCH -> AST renaming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3c7f4134603d04b44f997b43c0a9def270f25386 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
More PCH -> AST renaming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7b39a2cadf9d62647f3aa572c52b77ea4114a599 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHReader to ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c43b54cbc10654ed59de797898042e1a05265246 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHReader to ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c9b42df920d69f0a2e4779bfbea6234cf355539d |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHWriter to ASTWriter git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a4232eb646d89e7d52424bb42eb87d9061f39e63 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHWriter to ASTWriter git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
64a5f6f7034808988c3596cf340a879c0c501869 |
|
18-Aug-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Emit an error if an array is too large. We're slightly more strict than GCC 4.2 here when building 32-bit (where GCC will allow allocation of an array for which we can't get a valid past-the-end pointer), and emulate its odd behavior in 64-bit where it only allows 63 bits worth of storage in the array. The former is a correctness issue; the latter is harmless in practice (you wouldn't be able to use such an array anyway) and helps us pass a GCC DejaGNU test. Fixes <rdar://problem/8212293>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2767ce2e21d8bc17869b8436220bce719b3369e4 |
|
18-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Emit an error if an array is too large. We're slightly more strict than GCC 4.2 here when building 32-bit (where GCC will allow allocation of an array for which we can't get a valid past-the-end pointer), and emulate its odd behavior in 64-bit where it only allows 63 bits worth of storage in the array. The former is a correctness issue; the latter is harmless in practice (you wouldn't be able to use such an array anyway) and helps us pass a GCC DejaGNU test. Fixes <rdar://problem/8212293>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5a24acfed51d1233e325f43af5b2147ad9c31e04 |
|
11-Aug-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Speculatively revert r110610 " Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for forward declarations and the definition," which appears to be causing significant Objective-C breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
deacbdca554298ccdf636f19c6094a8825ec6b34 |
|
11-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Speculatively revert r110610 " Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for forward declarations and the definition," which appears to be causing significant Objective-C breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d202272883096751921e0860f9df659d4ab66b6 |
|
09-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
- Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for forward declarations and the definition. - Eagerly create ObjCInterfaceTypes for declarations. - The two above changes lead to a 0.5% increase in memory use and no speed regression when parsing Cocoa.h. On the other hand, now chained PCH works when there's a forward declaration in one PCH and the interface definition in another. - Add HandleInterestingDecl to ASTConsumer. PCHReader passes the "interesting" decls it finds to this function instead of HandleTopLevelDecl. The default implementation forwards to HandleTopLevelDecl, but ASTUnit's handler for example ignores them. This fixes a potential crash when lazy loading of PCH data would cause ASTUnit's "top level" declaration collection to change while being iterated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
74c730ad1f6818b676b0bad46d806a9176950328 |
|
09-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
- Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for forward declarations and the definition. - Eagerly create ObjCInterfaceTypes for declarations. - The two above changes lead to a 0.5% increase in memory use and no speed regression when parsing Cocoa.h. On the other hand, now chained PCH works when there's a forward declaration in one PCH and the interface definition in another. - Add HandleInterestingDecl to ASTConsumer. PCHReader passes the "interesting" decls it finds to this function instead of HandleTopLevelDecl. The default implementation forwards to HandleTopLevelDecl, but ASTUnit's handler for example ignores them. This fixes a potential crash when lazy loading of PCH data would cause ASTUnit's "top level" declaration collection to change while being iterated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e004547e55aa2e69d1a7ee3d037605c5b1e9f6c3 |
|
07-Aug-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Allow reference binding of a reference of Objective-C object type to an lvalue of another, compatible Objective-C object type (e.g., a subclass). Introduce a new initialization sequence step kind to describe this binding, along with a new cast kind. Fixes PR7741. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
569c3166874324c24011f8ade6978421f0d39b3c |
|
07-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Allow reference binding of a reference of Objective-C object type to an lvalue of another, compatible Objective-C object type (e.g., a subclass). Introduce a new initialization sequence step kind to describe this binding, along with a new cast kind. Fixes PR7741. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2fd2f7e034165b23a762bf9221adaee5c0599786 |
|
05-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Get rid of isObjectType; when C++ says "object type", it generally just means "not a function type", not "not a function type or void". This changes behavior slightly, but generally in a way which accepts more code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1357869bc5983cdfbc986db1f3d18265bb34cb0e |
|
05-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Get rid of isObjectType; when C++ says "object type", it generally just means "not a function type", not "not a function type or void". This changes behavior slightly, but generally in a way which accepts more code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
295dcb357afc5f6215405709cba1498f14bd673d |
|
02-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Remove mutable data on TagType and InjectedClassNameType, by instead walking the declaration chain in search of a definition. This is necessary for a sane chained PCH implementation. No observable performance change on Carbon.h syntax-only, and bootstraps cleanly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ed48a8faa10b6750f334540711c7b3949bbfb3ae |
|
02-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Remove mutable data on TagType and InjectedClassNameType, by instead walking the declaration chain in search of a definition. This is necessary for a sane chained PCH implementation. No observable performance change on Carbon.h syntax-only, and bootstraps cleanly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d01fbaddde95f6c229661bf31c4532acbb22e945 |
|
25-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Move Type destructor out-of-line git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
afb6416bf7f04a00c44092e802f335bb3636489c |
|
25-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Move Type destructor out-of-line git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1994615488b9c729eb7c3c854a6d5e1c1ca78bde |
|
25-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Remove the vast majority of the Destroy methods from the AST library, since we aren't going to be calling them ever. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ff331c15729f7d4439d253c97f4d60f2a7ffd0c6 |
|
25-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Remove the vast majority of the Destroy methods from the AST library, since we aren't going to be calling them ever. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
57cff32124cd5b95f3e1a5da12d3fff7e8892943 |
|
23-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Vectors are not integer types, so the type system should not classify them as such. Type::is(Signed|Unsigned|)IntegerType() now return false for vector types, and new functions has(Signed|Unsigned|)IntegerRepresentation() cover integer types and vector-of-integer types. This fixes a bunch of latent bugs. Patch from Anton Yartsev! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f60946222721d9ba3c059563935c17b84703187a |
|
23-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Vectors are not integer types, so the type system should not classify them as such. Type::is(Signed|Unsigned|)IntegerType() now return false for vector types, and new functions has(Signed|Unsigned|)IntegerRepresentation() cover integer types and vector-of-integer types. This fixes a bunch of latent bugs. Patch from Anton Yartsev! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
11594551693b1db92840bf1640d087ce1062609f |
|
14-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Increase the max PCH level for declarations to 7. Add a FromPCH flag to types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
07a353c2af3a3c557205466d4f4ed2513462ebfe |
|
14-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Increase the max PCH level for declarations to 7. Add a FromPCH flag to types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2350fb26d59692c6006ec5d33b8215e96055bdb6 |
|
13-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Whenever we're creating an expression that is typically an rvalue (e.g., a call, cast, etc.), immediately adjust the expression's type to strip cv-qualifiers off of all non-class types (in C++) or all types (in C). This effectively extends my previous fix for PR7463, which was restricted to calls, to other kinds of expressions within similar characteristics. I've audited every use of getNonReferenceType() in the code base, switching to the newly-renamed getNonLValueExprType() where necessary. Big thanks to Eli for pointing out just how incomplete my original fix for PR7463 actually was. We've been handling cv-qualifiers on rvalues wrong for a very, very long time. Fixes PR7463. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6398235d7890a81b785ea5af3b6e66d86bf184cc |
|
13-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Whenever we're creating an expression that is typically an rvalue (e.g., a call, cast, etc.), immediately adjust the expression's type to strip cv-qualifiers off of all non-class types (in C++) or all types (in C). This effectively extends my previous fix for PR7463, which was restricted to calls, to other kinds of expressions within similar characteristics. I've audited every use of getNonReferenceType() in the code base, switching to the newly-renamed getNonLValueExprType() where necessary. Big thanks to Eli for pointing out just how incomplete my original fix for PR7463 actually was. We've been handling cv-qualifiers on rvalues wrong for a very, very long time. Fixes PR7463. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8079eee9128444d02bebf24410126f9d55399f84 |
|
13-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
When forming a function call or message send expression, be sure to strip cv-qualifiers from the expression's type when the language calls for it: in C, that's all the time, while C++ only does it for non-class types. Centralized the computation of the call expression type in QualType::getCallResultType() and some helper functions in other nodes (FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant callers of getResultType() to getCallResultType(). Fixes PR7598 and PR7463, along with a bunch of getResultType() call sites that weren't stripping references off the result type (nothing stripped cv-qualifiers properly before this change). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5291c3cec0dbe8ad1d8e7e67e93af2b1586d5400 |
|
13-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
When forming a function call or message send expression, be sure to strip cv-qualifiers from the expression's type when the language calls for it: in C, that's all the time, while C++ only does it for non-class types. Centralized the computation of the call expression type in QualType::getCallResultType() and some helper functions in other nodes (FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant callers of getResultType() to getCallResultType(). Fixes PR7598 and PR7463, along with a bunch of getResultType() call sites that weren't stripping references off the result type (nothing stripped cv-qualifiers properly before this change). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b69c35fbf8635a267215a83b4e9fd980019f003a |
|
08-Jul-2010 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
For TagType and TemplateSpecializationType, isDependent calculation may be invalid because some decls that the calculation is using may still be initializing. Thus, store the isDependent flag to PCH and restore directly to Type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
be191100e034b23a3e13053757a57b7f5068c24a |
|
08-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
For TagType and TemplateSpecializationType, isDependent calculation may be invalid because some decls that the calculation is using may still be initializing. Thus, store the isDependent flag to PCH and restore directly to Type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f2606db18b5d64f241d74dc4e967347ad3da4792 |
|
02-Jul-2010 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Allow reading of InjectedClassNameType from PCH even when its decl is currently initializing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
43921b53b582145f0d1b7c48223bd4d9f0a9d1be |
|
02-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow reading of InjectedClassNameType from PCH even when its decl is currently initializing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
45c5e7c236f638b5a783dd5843c7a52b3d279a89 |
|
01-Jul-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Provide an exception-specification for an implicitly-declared copy-assignment operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b87786f045d798b070980c108c922e1475d27b15 |
|
01-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Provide an exception-specification for an implicitly-declared copy-assignment operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9484f8eade39f9d22deb26abdd6c1c804b820eac |
|
23-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
improve altivec vector bool/pixel support, patch by Anton Yartsev with several tweaks by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
788b0fd67e1992f23555454efcdb16a19dfefac3 |
|
23-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
improve altivec vector bool/pixel support, patch by Anton Yartsev with several tweaks by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1a7c1b12a61ed17f914c9d557dd6666e0253c133 |
|
23-Jun-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Change Type::isFloatingType() to reflect the actual definition of a "floating type" in C, which does not include vector types. Introduce Type::hasFloatingRepresentation() for the places where we want to know whether the underlying representation is one or more floating-point values. Remove some hacks we had where the former behavior of Type::isFloatingType() was at odds with the language definition of the term. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8eee119bf4f1693dde17b8552c1f9f81bf2b681e |
|
23-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Change Type::isFloatingType() to reflect the actual definition of a "floating type" in C, which does not include vector types. Introduce Type::hasFloatingRepresentation() for the places where we want to know whether the underlying representation is one or more floating-point values. Remove some hacks we had where the former behavior of Type::isFloatingType() was at odds with the language definition of the term. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ec29bc0265b0a67e7e47947fd5e0707f46c15d4a |
|
22-Jun-2010 |
Victor Hsieh <victorhsieh@google.com> |
Support foo.{r,g,b,a}, where foo is a float4. Change-Id: I68e9c36406db77bd0025c33cdbfc55324fa40568
/external/clang/include/clang/AST/Type.h
|
25560122fbc4a39c864695b170e4ff9009e1f273 |
|
16-Jun-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Revert r106099; it broke self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
efed5c832de630715dd42211dd3b2aab5dd97a1b |
|
16-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r106099; it broke self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a7bf34440df135029859cedd15a83072dc08ae66 |
|
16-Jun-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added TemplateTypeParmType::getDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6cd8087e66d706f2317865f86c865fd9bc6969c9 |
|
16-Jun-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added TemplateTypeParmType::getDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7fcbab0d9ed96afbdcc3dd4ad876bcbf452fd25f |
|
16-Jun-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Give Type::isIntegralType() an ASTContext parameter, so that it provides C "integer type" semantics in C and C++ "integral type" semantics in C++. Note that I still need to update isIntegerType (and possibly other predicates) using the same approach I've taken for isIntegralType(). The two should have the same meaning, but currently don't (!). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d3347a5887d2d25afe8b0bd35783a72ec86cce2 |
|
16-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Give Type::isIntegralType() an ASTContext parameter, so that it provides C "integer type" semantics in C and C++ "integral type" semantics in C++. Note that I still need to update isIntegerType (and possibly other predicates) using the same approach I've taken for isIntegralType(). The two should have the same meaning, but currently don't (!). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
59327f06fa557d652e0560e6895c93db70ea5ec7 |
|
16-Jun-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce Type::isIntegralOrEnumerationType(), to cover those places in C++ that involve both integral and enumeration types. Convert all of the callers to Type::isIntegralType() that are meant to work with both integral and enumeration types over to Type::isIntegralOrEnumerationType(), to prepare to eliminate enumeration types as integral types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ade35e2cfd554e49d35a52047cea98a82787af9 |
|
16-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce Type::isIntegralOrEnumerationType(), to cover those places in C++ that involve both integral and enumeration types. Convert all of the callers to Type::isIntegralType() that are meant to work with both integral and enumeration types over to Type::isIntegralOrEnumerationType(), to prepare to eliminate enumeration types as integral types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
486c883ca29f6b50bb8ded372ad5bb2970fd4101 |
|
13-Jun-2010 |
John McCall <rjmccall@apple.com> |
TemplateSpecializationType's isCurrentInstantiation bit can be derived from its canonical type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71d74bc0d6e522ce7c21a599db8e19d3883b518f |
|
13-Jun-2010 |
John McCall <rjmccall@apple.com> |
TemplateSpecializationType's isCurrentInstantiation bit can be derived from its canonical type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
02cd8e64ab4b62f88c62f63320ddd17466764022 |
|
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Don't store ASTContext references in the TST nodes just to support profiling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ef99001908e799c388f1363b1e607dad5f5b57d3 |
|
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Don't store ASTContext references in the TST nodes just to support profiling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
52b136ace347ee82e11145927e37980157bacb35 |
|
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Split DependentNameType into two types. DependentNameType represents the case of an elaborated-type-specifier like 'typename A<T>::foo', and DependentTemplateSpecializationType represents the case of an elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc representation of a DependentTST conveniently exactly matches that of an ElaboratedType wrapping a TST. Kill off the explicit rebuild methods for RebuildInCurrentInstantiation; the standard implementations work fine because the nested name specifier is computable in the newly-entered context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
33500955d731c73717af52088b7fc0e7a85681e7 |
|
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Split DependentNameType into two types. DependentNameType represents the case of an elaborated-type-specifier like 'typename A<T>::foo', and DependentTemplateSpecializationType represents the case of an elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc representation of a DependentTST conveniently exactly matches that of an ElaboratedType wrapping a TST. Kill off the explicit rebuild methods for RebuildInCurrentInstantiation; the standard implementations work fine because the nested name specifier is computable in the newly-entered context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
522fb671290dd5462bfd819401768686fa53e925 |
|
09-Jun-2010 |
Tom Care <tcare@apple.com> |
Added helper function to Type class to determine if a type is a builtin type. This complements the existing function that determines if a type is a specific builtin type. Modified: include/clang/AST/Type.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9b065ddabf572772991a4aadad5bf4921fac5069 |
|
09-Jun-2010 |
Tom Care <tcare@apple.com> |
Added helper function to Type class to determine if a type is a builtin type. This complements the existing function that determines if a type is a specific builtin type. Modified: include/clang/AST/Type.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ea285162342df160e7860e26528bc7110bc6c0cd |
|
04-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Initial slang. Change-Id: I4f84a741e5fbc440cd4c251406d2b611a237f713
/external/clang/include/clang/AST/Type.h
|
949d2c031f173ec539d1aa667bba503fda7fb763 |
|
19-May-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Cache the linkage of a type within its canonical type, eliminating some seriously non-linear performance with deeply nested template instantiations, as shown in PR6998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
60e7064d78f1a29cf969f255a19a9ae25e6bc128 |
|
19-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Cache the linkage of a type within its canonical type, eliminating some seriously non-linear performance with deeply nested template instantiations, as shown in PR6998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
01890a8487ae3330abc501b455e2092545d54775 |
|
18-May-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Add support for Microsoft's __thiscall, from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f813a2c03fcb05381b3252010435f557eb6b3cde |
|
18-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Add support for Microsoft's __thiscall, from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cca3b567dafc1d3125f476ae19bf82d84b16e4c1 |
|
18-May-2010 |
John McCall <rjmccall@apple.com> |
Comments and assorted cleanups for the Objective C type AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e175a6f6ede0ae31165a18ac8bf4e8d2681b39f8 |
|
18-May-2010 |
John McCall <rjmccall@apple.com> |
Comments and assorted cleanups for the Objective C type AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f4f254c60f644f08dea9cfbe0865016a5ef748a6 |
|
15-May-2010 |
John McCall <rjmccall@apple.com> |
Substantially alter the design of the Objective C type AST by introducing ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c12c5bba6ceb6acd4e51e7a0fc03257da9cfd44e |
|
15-May-2010 |
John McCall <rjmccall@apple.com> |
Substantially alter the design of the Objective C type AST by introducing ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6f52e3c5663a669ec61379e933e0fe7ad2f1a566 |
|
13-May-2010 |
Chris Lattner <sabre@nondot.org> |
add a couple of key functions for classes without them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bef0efd11bc4430a3ee437a3213cec5c18af855a |
|
13-May-2010 |
Chris Lattner <sabre@nondot.org> |
add a couple of key functions for classes without them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ab1f1819386bd718899582eb6426b2619b11e2cf |
|
11-May-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Merged Elaborated and QualifiedName types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
465d41b92b2c862f3062c412a0538db65c6a2661 |
|
11-May-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Merged Elaborated and QualifiedName types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a8d7ca6e37fb2aba356c16ca9c31cafa7ae68584 |
|
30-Apr-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
When we start the definition of a class template, set the InjectedClassNameType's Decl to point at the definition. It's a little messy, but we do the same thing with classes and their record types, since much of Clang expects that the TagDecl* one gets out of a type is the definition. Fixes several Boost.Proto failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9ffce2182e4fe72052d620698d272207f494b1cf |
|
30-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
When we start the definition of a class template, set the InjectedClassNameType's Decl to point at the definition. It's a little messy, but we do the same thing with classes and their record types, since much of Clang expects that the TagDecl* one gets out of a type is the definition. Fixes several Boost.Proto failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
95c54dfa43c5159d2854910c21cc03374238e94e |
|
27-Apr-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
During template instantiation, set the naming class of UnresolvedLookupExpr and UnresolvedMemberExpr by substituting the naming class we computed when building the expression in the template... ... which we didn't always do correctly. Teach UnresolvedMemberExpr::getNamingClass() all about the new representation of injected-class-names in templates, so that it can return a naming class that is the current instantiation. Also, when decomposing a template-id into its template name and its arguments, be sure to set the naming class on the LookupResult structure. Fixes PR6947 the right way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c96be1ea33cdf63d07cec48d18fe8e3afea48f8d |
|
27-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
During template instantiation, set the naming class of UnresolvedLookupExpr and UnresolvedMemberExpr by substituting the naming class we computed when building the expression in the template... ... which we didn't always do correctly. Teach UnresolvedMemberExpr::getNamingClass() all about the new representation of injected-class-names in templates, so that it can return a naming class that is the current instantiation. Also, when decomposing a template-id into its template name and its arguments, be sure to set the naming class on the LookupResult structure. Fixes PR6947 the right way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4578a3a1441eb22b68d909fa35d82e6ee7204e38 |
|
27-Apr-2010 |
John McCall <rjmccall@apple.com> |
Make the InjectedClassNameType the canonical type of the current instantiation of a class template or class template partial specialization. That is to say, in template <class T> class A { ... }; or template <class T> class B<const T*> { ... }; make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType when written inside the appropriate context. This allows us to track the current instantiation appropriately even inside AST routines. It also allows us to compute a DeclContext for a type much more efficiently, at some extra cost every time we write a template specialization (which can be optimized, but I've left it simple in this patch). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
31f17ecbef57b5679c017c375db330546b7b5145 |
|
27-Apr-2010 |
John McCall <rjmccall@apple.com> |
Make the InjectedClassNameType the canonical type of the current instantiation of a class template or class template partial specialization. That is to say, in template <class T> class A { ... }; or template <class T> class B<const T*> { ... }; make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType when written inside the appropriate context. This allows us to track the current instantiation appropriately even inside AST routines. It also allows us to compute a DeclContext for a type much more efficiently, at some extra cost every time we write a template specialization (which can be optimized, but I've left it simple in this patch). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6cb535784c071d1a662aeac8e548e8757dd1a969 |
|
26-Apr-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce Type::isStructureOrClassType(), which does the obvious thing. Audit all uses of Type::isStructure(), changing those calls to isStructureOrClassType() as needed (which is alsmost everywhere). Fixes the remaining failure in Boost.Utility/Swap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fb87b89fc9eb103e19fb8e4b925c23f0bd091b99 |
|
26-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce Type::isStructureOrClassType(), which does the obvious thing. Audit all uses of Type::isStructure(), changing those calls to isStructureOrClassType() as needed (which is alsmost everywhere). Fixes the remaining failure in Boost.Utility/Swap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e6c39d3a3e77c17bb9aa97be6e2e1ae2dbd654db |
|
07-Apr-2010 |
Shih-wei Liao <sliao@google.com> |
libbcc Change-Id: Ieaa3ebd5a38f370752495549f8870b534eeedfc5
/external/clang/include/clang/AST/Type.h
|
8edbcc8c7084a7311da0ba56df59c758bed0db87 |
|
02-Apr-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Resolve a layering violation by making AddTaggedVal public for PartialDiagnostic objects, and hoisting the stream operator for QualType into Type.h with the operator for the normal DiagnosticBuilder. Also remove the no longer needed friend declaration for the DeclarationName stream operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
47c24b1d94f446c43e3a64732867eabed7d9c961 |
|
02-Apr-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Resolve a layering violation by making AddTaggedVal public for PartialDiagnostic objects, and hoisting the stream operator for QualType into Type.h with the operator for the normal DiagnosticBuilder. Also remove the no longer needed friend declaration for the DeclarationName stream operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ec6d392c816684e9679a3d04f742fa3991f5fe1e |
|
01-Apr-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Change the representation of dependent elaborated-type-specifiers (such as "class T::foo") from an ElaboratedType of a TypenameType to a DependentNameType, which more accurately models the underlying concept. Improve template instantiation for DependentNameType nodes that represent nested-name-specifiers, by performing tag name lookup and checking the resulting tag appropriately. Fixes PR5681. There is still much testing and cleanup to do in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4033642464e8ba0982f88f34cffad808d247b393 |
|
01-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Change the representation of dependent elaborated-type-specifiers (such as "class T::foo") from an ElaboratedType of a TypenameType to a DependentNameType, which more accurately models the underlying concept. Improve template instantiation for DependentNameType nodes that represent nested-name-specifiers, by performing tag name lookup and checking the resulting tag appropriately. Fixes PR5681. There is still much testing and cleanup to do in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ca7a15360ebda535be0f3281baf6bd4310b9b6d4 |
|
31-Mar-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Extend DependentNameType with a keyword enum that specifies whether this was parsed as a typename-specifier, elaborated-type-specifier (including the kind), or just a dependent qualified type name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4a2023f5014e82389d5980d307b89c545dbbac81 |
|
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Extend DependentNameType with a keyword enum that specifies whether this was parsed as a typename-specifier, elaborated-type-specifier (including the kind), or just a dependent qualified type name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
387b0fc2d81da3b564801d77e2f20681ee868887 |
|
31-Mar-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Remove the AST statistics tracking I added yesterday; it didn't pan out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db2eb5abf4c082d1f0c5c45e39d8cd0300f81e38 |
|
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Remove the AST statistics tracking I added yesterday; it didn't pan out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
725b41e4eefc6d19b6215f24489acbc2e1641765 |
|
31-Mar-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Rename TypenameType to DependentNameType in anticipation of some refactoring work in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4714c12a1ab759156b78be8f109ea4c12213af57 |
|
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Rename TypenameType to DependentNameType in anticipation of some refactoring work in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ffdc0f8242c22c4bca8bbc2390be61a8a80e4b8 |
|
31-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remember the regparm attribute in FunctionType::ExtInfo. Fixes PR3782. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
425ef72306d4ff6b3698b744353e5f0e56b4b884 |
|
31-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remember the regparm attribute in FunctionType::ExtInfo. Fixes PR3782. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
433d7d2c70b9be3f9edd40579f512ecab8755049 |
|
30-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
the big refactoring bits of PR3782. This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
264ba48dc98f3f843935a485d5b086f7e0fdc4f1 |
|
30-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
the big refactoring bits of PR3782. This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
eb6c0f92e1ddc70ccce0c7ee92666a816773493d |
|
30-Mar-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce new AST statistics that keep track of the number of isa (or dyn_cast) invocations for C++ and Objective-C types, declarations, expressions, and statements. The statistics will be printed when -print-stats is provided to Clang -cc1, with results such as: 277073 clang - Number of checks for C++ declaration nodes 13311 clang - Number of checks for C++ expression nodes 18 clang - Number of checks for C++ statement nodes 174182 clang - Number of checks for C++ type nodes 92300 clang - Number of checks for Objective-C declaration nodes 9800 clang - Number of checks for Objective-C expression nodes 7 clang - Number of checks for Objective-C statement nodes 65733 clang - Number of checks for Objective-C type nodes The statistics are only gathered when NDEBUG is not defined, since they introduce potentially-expensive operations into very low-level routines (isa). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f540305c5d834ad9412b41805b81a74249b7c5af |
|
30-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce new AST statistics that keep track of the number of isa (or dyn_cast) invocations for C++ and Objective-C types, declarations, expressions, and statements. The statistics will be printed when -print-stats is provided to Clang -cc1, with results such as: 277073 clang - Number of checks for C++ declaration nodes 13311 clang - Number of checks for C++ expression nodes 18 clang - Number of checks for C++ statement nodes 174182 clang - Number of checks for C++ type nodes 92300 clang - Number of checks for Objective-C declaration nodes 9800 clang - Number of checks for Objective-C expression nodes 7 clang - Number of checks for Objective-C statement nodes 65733 clang - Number of checks for Objective-C type nodes The statistics are only gathered when NDEBUG is not defined, since they introduce potentially-expensive operations into very low-level routines (isa). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fdee3fd78798a34a1b2215f48199196c1fb0ad3a |
|
29-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Be a bit more consistent in using operator-> This patch moves some methods from QualType to Type and changes the users to use -> instead of . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
802c66edc5073991f2315ea84ecace1867c6027f |
|
29-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Be a bit more consistent in using operator-> This patch moves some methods from QualType to Type and changes the users to use -> instead of . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
99643944ad6b889d382f7ea56d6f8e3cdc3b25b3 |
|
29-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Drop default arguments no one is using. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1279deea7981fc66adeb941aa08f2753c096684c |
|
29-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Drop default arguments no one is using. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
55851d6d117e79db3a891bcb821acd19592b2178 |
|
10-Mar-2010 |
John McCall <rjmccall@apple.com> |
Create a new InjectedClassNameType to represent bare-word references to the injected class name of a class template or class template partial specialization. This is a non-canonical type; the canonical type is still a template specialization type. This becomes the TypeForDecl of the pattern declaration, which cleans up some amount of code (and complicates some other parts, but whatever). Fixes PR6326 and probably a few others, primarily by re-establishing a few invariants about TypeLoc sizes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3cb0ebd5f76abcb776f7cb4062bd79e3268c0dc4 |
|
10-Mar-2010 |
John McCall <rjmccall@apple.com> |
Create a new InjectedClassNameType to represent bare-word references to the injected class name of a class template or class template partial specialization. This is a non-canonical type; the canonical type is still a template specialization type. This becomes the TypeForDecl of the pattern declaration, which cleans up some amount of code (and complicates some other parts, but whatever). Fixes PR6326 and probably a few others, primarily by re-establishing a few invariants about TypeLoc sizes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cc392fc654e59b8d55df3901a82b193845ee44f4 |
|
26-Feb-2010 |
John McCall <rjmccall@apple.com> |
Use the power of types to track down another canonicalization bug in the ABI-computation interface. Fixes <rdar://problem/7691046>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ead608af31b6c9abeae1ca6d0b75094dac4641c0 |
|
26-Feb-2010 |
John McCall <rjmccall@apple.com> |
Use the power of types to track down another canonicalization bug in the ABI-computation interface. Fixes <rdar://problem/7691046>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d7757931fd2f6fb2dc272e3cde0f2251c392e1ed |
|
16-Feb-2010 |
John McCall <rjmccall@apple.com> |
Make the various type-decl Types (and their associated ASTContext routines) accept const decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
19c8576b7328f4dc2d07682f5da552875c1912ef |
|
16-Feb-2010 |
John McCall <rjmccall@apple.com> |
Make the various type-decl Types (and their associated ASTContext routines) accept const decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f584f2392641e1ef754c17a46f2e52334ebbf545 |
|
15-Feb-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Reimplement the structural-equality checks used to determine whether two types in different AST contexts are equivalent. Rather than transforming the type from one context into the other context, we perform a deep structural comparison of the types. This change addresses a serious problem with recursive data types like struct ListNode { int value; struct ListNode *Next; } xList; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
73dc30b71e218ba2b776b10d07dc2aff09cb2c47 |
|
15-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Reimplement the structural-equality checks used to determine whether two types in different AST contexts are equivalent. Rather than transforming the type from one context into the other context, we perform a deep structural comparison of the types. This change addresses a serious problem with recursive data types like struct ListNode { int value; struct ListNode *Next; } xList; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27dc8619071ac2ef47318bf4ff21b99a3e3793ae |
|
12-Feb-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Improve documentation for DependentTypeOfExprType, DependentDecltypeType. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c4875ee41ba35f1d746f4266ce47461247f19f41 |
|
12-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve documentation for DependentTypeOfExprType, DependentDecltypeType. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d665afdb7e5fdcb4a295c91863cc13c90c3bf4c4 |
|
12-Feb-2010 |
John McCall <rjmccall@apple.com> |
Waste two bits in every clang::Type so that the type class can be read in a single byte-load rather than some crazy bitmunging operation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27935ee59c30b0d8b610ab676aab8e65350af932 |
|
12-Feb-2010 |
John McCall <rjmccall@apple.com> |
Waste two bits in every clang::Type so that the type class can be read in a single byte-load rather than some crazy bitmunging operation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f8fd82ba49827db0f6a6ba00c55a7b56b12a19fa |
|
10-Feb-2010 |
Shih-wei Liao <sliao@google.com> |
Check in LLVM r95781.
/external/clang/include/clang/AST/Type.h
|
1b60285d38b1d9c443b897cf42d85a7cfee54309 |
|
08-Feb-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Eliminate a pointer of storage in each ObjCInterfaceType and ObjCObjectPointerType AST node by allocating the list of protocols after the type node itself. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fd6a0887a099256c35a5b23e9afd517ffe95fa0a |
|
08-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate a pointer of storage in each ObjCInterfaceType and ObjCObjectPointerType AST node by allocating the list of protocols after the type node itself. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ad760b38613b3f7f1024b011f6109bed1487b32e |
|
05-Feb-2010 |
John McCall <rjmccall@apple.com> |
Standardize the parsing of function type attributes in a way that follows (as conservatively as possible) gcc's current behavior: attributes written on return types that don't apply there are applied to the function instead, etc. Only parse CC attributes as type attributes, not as decl attributes; don't accepet noreturn as a decl attribute on ValueDecls, either (it still needs to apply to other decls, like blocks). Consistently consume CC/noreturn information throughout codegen; enforce this by removing their default values in CodeGenTypes::getFunctionInfo(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
04a67a6aa3dfdc92d57f7f8d93ba397348c868a4 |
|
05-Feb-2010 |
John McCall <rjmccall@apple.com> |
Standardize the parsing of function type attributes in a way that follows (as conservatively as possible) gcc's current behavior: attributes written on return types that don't apply there are applied to the function instead, etc. Only parse CC attributes as type attributes, not as decl attributes; don't accepet noreturn as a decl attribute on ValueDecls, either (it still needs to apply to other decls, like blocks). Consistently consume CC/noreturn information throughout codegen; enforce this by removing their default values in CodeGenTypes::getFunctionInfo(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
438d00a23413bb5e63afa12a975fd2f2e6216293 |
|
05-Feb-2010 |
John Thompson <john.thompson.jtsoftware@gmail.com> |
First stage of adding AltiVec support git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
82287d19ded35248c4ce6a425ce74116a13ce44e |
|
05-Feb-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
First stage of adding AltiVec support git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db5993538c7f29ea7331dcb7292c083e1bab798c |
|
04-Feb-2010 |
John McCall <rjmccall@apple.com> |
Allow calling convention attributes to apply to types. Patch by Chip Davis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f82b4e85b1219295cad4b5851b035575bc293010 |
|
04-Feb-2010 |
John McCall <rjmccall@apple.com> |
Allow calling convention attributes to apply to types. Patch by Chip Davis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b93a009003f19418ef0ef0d8a42a3895562c7391 |
|
03-Feb-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
When a function or variable somehow depends on a type or declaration that is in an anonymous namespace, give that function or variable internal linkage. This change models an oddity of the C++ standard, where names declared in an anonymous namespace have external linkage but, because anonymous namespace are really "uniquely-named" namespaces, the names cannot be referenced from other translation units. That means that they have external linkage for semantic analysis, but the only sensible implementation for code generation is to give them internal linkage. We now model this notion via the UniqueExternalLinkage linkage type. There are several changes here: - Extended NamedDecl::getLinkage() to produce UniqueExternalLinkage when the declaration is in an anonymous namespace. - Added Type::getLinkage() to determine the linkage of a type, which is defined as the minimum linkage of the types (when we're dealing with a compound type that is not a struct/class/union). - Extended NamedDecl::getLinkage() to consider the linkage of the template arguments and template parameters of function template specializations and class template specializations. - Taught code generation to rely on NamedDecl::getLinkage() when determining the linkage of variables and functions, also considering the linkage of the types of those variables and functions (C++ only). Map UniqueExternalLinkage to internal linkage, taking out the explicit checks for isInAnonymousNamespace(). This fixes much of PR5792, which, as discovered by Anders Carlsson, is actually the reason behind the pass-manager assertion that causes the majority of clang-on-clang regression test failures. With this fix, Clang-built-Clang+LLVM passes 88% of its regression tests (up from 67%). The specific numbers are: LLVM: Expected Passes : 4006 Expected Failures : 32 Unsupported Tests : 40 Unexpected Failures: 736 Clang: Expected Passes : 1903 Expected Failures : 14 Unexpected Failures: 75 Overall: Expected Passes : 5909 Expected Failures : 46 Unsupported Tests : 40 Unexpected Failures: 811 Still to do: - Improve testing - Check whether we should allow the presence of types with InternalLinkage (in addition to UniqueExternalLinkage) given variables/functions internal linkage in C++, as mentioned in PR5792. - Determine how expensive the getLinkage() calls are in practice; consider caching the result in NamedDecl. - Assess the feasibility of Chris's idea in comment #1 of PR5792. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0b6bc8bd7a1d2a7d7478d13d78cff94cacad61fc |
|
03-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
When a function or variable somehow depends on a type or declaration that is in an anonymous namespace, give that function or variable internal linkage. This change models an oddity of the C++ standard, where names declared in an anonymous namespace have external linkage but, because anonymous namespace are really "uniquely-named" namespaces, the names cannot be referenced from other translation units. That means that they have external linkage for semantic analysis, but the only sensible implementation for code generation is to give them internal linkage. We now model this notion via the UniqueExternalLinkage linkage type. There are several changes here: - Extended NamedDecl::getLinkage() to produce UniqueExternalLinkage when the declaration is in an anonymous namespace. - Added Type::getLinkage() to determine the linkage of a type, which is defined as the minimum linkage of the types (when we're dealing with a compound type that is not a struct/class/union). - Extended NamedDecl::getLinkage() to consider the linkage of the template arguments and template parameters of function template specializations and class template specializations. - Taught code generation to rely on NamedDecl::getLinkage() when determining the linkage of variables and functions, also considering the linkage of the types of those variables and functions (C++ only). Map UniqueExternalLinkage to internal linkage, taking out the explicit checks for isInAnonymousNamespace(). This fixes much of PR5792, which, as discovered by Anders Carlsson, is actually the reason behind the pass-manager assertion that causes the majority of clang-on-clang regression test failures. With this fix, Clang-built-Clang+LLVM passes 88% of its regression tests (up from 67%). The specific numbers are: LLVM: Expected Passes : 4006 Expected Failures : 32 Unsupported Tests : 40 Unexpected Failures: 736 Clang: Expected Passes : 1903 Expected Failures : 14 Unexpected Failures: 75 Overall: Expected Passes : 5909 Expected Failures : 46 Unsupported Tests : 40 Unexpected Failures: 811 Still to do: - Improve testing - Check whether we should allow the presence of types with InternalLinkage (in addition to UniqueExternalLinkage) given variables/functions internal linkage in C++, as mentioned in PR5792. - Determine how expensive the getLinkage() calls are in practice; consider caching the result in NamedDecl. - Assess the feasibility of Chris's idea in comment #1 of PR5792. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
39abeeb809b1c9cdd18d0d338aa8cbf71748d8d2 |
|
21-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Allocate the 'Protocols' array in ObjCInterfaceType and ObjCObjectPointerType using the allocator associated with ASTContext. Not only does this fix a memory leak, but it also makes these arrays BumpPtrAllocated (in the typical case). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71842cc07aafdebc9b180322ebb46f530beca5d6 |
|
21-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Allocate the 'Protocols' array in ObjCInterfaceType and ObjCObjectPointerType using the allocator associated with ASTContext. Not only does this fix a memory leak, but it also makes these arrays BumpPtrAllocated (in the typical case). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
31cc550280fe5c50d7f6ff57978ec083d284b53b |
|
18-Jan-2010 |
Douglas Gregor <doug.gregor@gmail.com> |
Encoding calling conventions in the type system, from Charles Davis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ab8bbf4ebd3e3e6eab913cb044772a62b7581941 |
|
18-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Encoding calling conventions in the type system, from Charles Davis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6d18ae945b0b85054942aaac9ee32011d5b8b34d |
|
30-Dec-2009 |
Chandler Carruth <chandlerc@gmail.com> |
More fixes to the handling of CVR-comparisons on array types. Adds a method to QualType to get CVR-qualifiers through array types, and switches the primary comparison methods to use it. This may allow simplifying some of the callers of getUnqualifiedArrayType. Also fix the normalizing of CV-qualification during template deduction to normalize through arrays and allow a more qualified deduced array type. This fixes PR5911. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e724246b9f655801bd96b727daf9dddc44beef4d |
|
30-Dec-2009 |
Chandler Carruth <chandlerc@gmail.com> |
More fixes to the handling of CVR-comparisons on array types. Adds a method to QualType to get CVR-qualifiers through array types, and switches the primary comparison methods to use it. This may allow simplifying some of the callers of getUnqualifiedArrayType. Also fix the normalizing of CV-qualification during template deduction to normalize through arrays and allow a more qualified deduced array type. This fixes PR5911. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
79f414435ef406f9fb3dc7733b93715ac6313425 |
|
29-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Get rid of FixedWidthIntType, as suggested by Chris and Eli. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f5f7d864f5067d1ea4bff7fcf41b53a43b7b48ba |
|
29-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Get rid of FixedWidthIntType, as suggested by Chris and Eli. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e38592f880f425a6d9ea856a81703522a8ae345b |
|
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move isPodLike<clang::QualType> out to Type.h. We don't want some clients of QualType to think it's a pod and some to not know it is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aed1df80bf64228e1429c1edc408397f9174847c |
|
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
move isPodLike<clang::QualType> out to Type.h. We don't want some clients of QualType to think it's a pod and some to not know it is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
da86f093507a7733ae955d7511b88f8bf4f61752 |
|
10-Dec-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Reimplement reference initialization (C++ [dcl.init.ref]) using the new notion of an "initialization sequence", which encapsulates the computation of the initialization sequence along with diagnostic information and the capability to turn the computed sequence into an expression. At present, I've only switched one CheckReferenceInit callers over to this new mechanism; more will follow. Aside from (hopefully) being much more true to the standard, the diagnostics provided by this reference-initialization code are a bit better than before. Some examples: p5-var.cpp:54:12: error: non-const lvalue reference to type 'struct Derived' cannot bind to a value of unrelated type 'struct Base' Derived &dr2 = b; // expected-error{{non-const lvalue reference to ... ^ ~ p5-var.cpp:55:9: error: binding of reference to type 'struct Base' to a value of type 'struct Base const' drops qualifiers Base &br3 = bc; // expected-error{{drops qualifiers}} ^ ~~ p5-var.cpp:57:15: error: ambiguous conversion from derived class 'struct Diamond' to base class 'struct Base': struct Diamond -> struct Derived -> struct Base struct Diamond -> struct Derived2 -> struct Base Base &br5 = diamond; // expected-error{{ambiguous conversion from ... ^~~~~~~ p5-var.cpp:59:9: error: non-const lvalue reference to type 'long' cannot bind to a value of unrelated type 'int' long &lr = i; // expected-error{{non-const lvalue reference to type ... ^ ~ p5-var.cpp:74:9: error: non-const lvalue reference to type 'struct Base' cannot bind to a temporary of type 'struct Base' Base &br1 = Base(); // expected-error{{non-const lvalue reference to ... ^ ~~~~~~ p5-var.cpp:102:9: error: non-const reference cannot bind to bit-field 'i' int & ir1 = (ib.i); // expected-error{{non-const reference cannot ... ^ ~~~~~~ p5-var.cpp:98:7: note: bit-field is declared here int i : 17; // expected-note{{bit-field is declared here}} ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
20093b4bf698f292c664676987541d5103b65b15 |
|
10-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Reimplement reference initialization (C++ [dcl.init.ref]) using the new notion of an "initialization sequence", which encapsulates the computation of the initialization sequence along with diagnostic information and the capability to turn the computed sequence into an expression. At present, I've only switched one CheckReferenceInit callers over to this new mechanism; more will follow. Aside from (hopefully) being much more true to the standard, the diagnostics provided by this reference-initialization code are a bit better than before. Some examples: p5-var.cpp:54:12: error: non-const lvalue reference to type 'struct Derived' cannot bind to a value of unrelated type 'struct Base' Derived &dr2 = b; // expected-error{{non-const lvalue reference to ... ^ ~ p5-var.cpp:55:9: error: binding of reference to type 'struct Base' to a value of type 'struct Base const' drops qualifiers Base &br3 = bc; // expected-error{{drops qualifiers}} ^ ~~ p5-var.cpp:57:15: error: ambiguous conversion from derived class 'struct Diamond' to base class 'struct Base': struct Diamond -> struct Derived -> struct Base struct Diamond -> struct Derived2 -> struct Base Base &br5 = diamond; // expected-error{{ambiguous conversion from ... ^~~~~~~ p5-var.cpp:59:9: error: non-const lvalue reference to type 'long' cannot bind to a value of unrelated type 'int' long &lr = i; // expected-error{{non-const lvalue reference to type ... ^ ~ p5-var.cpp:74:9: error: non-const lvalue reference to type 'struct Base' cannot bind to a temporary of type 'struct Base' Base &br1 = Base(); // expected-error{{non-const lvalue reference to ... ^ ~~~~~~ p5-var.cpp:102:9: error: non-const reference cannot bind to bit-field 'i' int & ir1 = (ib.i); // expected-error{{non-const reference cannot ... ^ ~~~~~~ p5-var.cpp:98:7: note: bit-field is declared here int i : 17; // expected-note{{bit-field is declared here}} ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
caf383ae337966d67380b6b161fab17ec2b53d04 |
|
04-Dec-2009 |
John McCall <rjmccall@apple.com> |
Fix "using typename" and the instantiation of non-dependent using declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ed97649e9574b9d854fa4d6109c9333ae0993554 |
|
04-Dec-2009 |
John McCall <rjmccall@apple.com> |
Fix "using typename" and the instantiation of non-dependent using declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
75067d2c35093b2c9cd4f96a3d5e2df0b5383d17 |
|
03-Dec-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Introduce the notion of literal types, as specified in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ccf43505dbc47da041c06125f90b3bd3ac7eac97 |
|
03-Dec-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Introduce the notion of literal types, as specified in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2818bd26562e1a2b7d7e9fb31d72f698a5748289 |
|
30-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a crash when ivar type is a __strong SEL. Fallout from recent change to make SEL a builtin type (fixes radar 7425510). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8d2c0a9814e56c2b22e22d1045181c735aef62fd |
|
30-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a crash when ivar type is a __strong SEL. Fallout from recent change to make SEL a builtin type (fixes radar 7425510). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ed9480970db65f8705eeba0760fbe8feefe6389b |
|
23-Nov-2009 |
John McCall <rjmccall@apple.com> |
Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into a new class. Use it pervasively throughout Sema. My fingers hurt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d5532b6cfff2977e0c59fa6ead7f7973984a620d |
|
23-Nov-2009 |
John McCall <rjmccall@apple.com> |
Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into a new class. Use it pervasively throughout Sema. My fingers hurt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a238d6daa15f845738a8b15a3bc9f5b84617744b |
|
21-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch implements objective-c's 'SEL' type as a built-in type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
13dcd00615de5c4279d97bdf63cd5f0a14fd9dcc |
|
21-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch implements objective-c's 'SEL' type as a built-in type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
393c00d16a75731eceb7f815751722e4b4a950e4 |
|
19-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Cope with an amusingly little anomaly with dependent types and incomplete array initialization, where we have the following in a template: int a[] = { 1, 2, something-value-dependent }; // ... sizeof(a); The type of "a" appears to be a non-dependent IncompleteArrayType, but treating it as such makes the sizeof(a) fail at template definition time. We now correctly handle this by morphing the IncompleteArrayType into a DependentSizedArrayType with a NULL expression, indicating that its size has no corresponding expression (and, therefore, the type is distinct from others). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cb78d8852a454684c987220132cdb5e54dd00121 |
|
19-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Cope with an amusingly little anomaly with dependent types and incomplete array initialization, where we have the following in a template: int a[] = { 1, 2, something-value-dependent }; // ... sizeof(a); The type of "a" appears to be a non-dependent IncompleteArrayType, but treating it as such makes the sizeof(a) fail at template definition time. We now correctly handle this by morphing the IncompleteArrayType into a DependentSizedArrayType with a NULL expression, indicating that its size has no corresponding expression (and, therefore, the type is distinct from others). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4f4b5bcdce90be1ebc9373c500cc07cfb458400c |
|
17-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
When querying type qualifiers on QualType via one of the "non-local" interfaces (which are used throughout the front end), combine the qualifiers on the QualType instance with the qualifiers on the canonical type to produce the set of qualifiers that, semantically, apply to that type. This should design away a large category of "qualifier-hidden-behind-a-typedef" buts like we saw in PR5383. Performance-wise, this caused a regression of ~0.5% on Cocoa.h, but it's totally worth it. We may actually be able to get a little more performance back by using CanQualType more often. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fa1a06e80706846fa15e0bd44671bdc3dfc53d84 |
|
17-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
When querying type qualifiers on QualType via one of the "non-local" interfaces (which are used throughout the front end), combine the qualifiers on the QualType instance with the qualifiers on the canonical type to produce the set of qualifiers that, semantically, apply to that type. This should design away a large category of "qualifier-hidden-behind-a-typedef" buts like we saw in PR5383. Performance-wise, this caused a regression of ~0.5% on Cocoa.h, but it's totally worth it. We may actually be able to get a little more performance back by using CanQualType more often. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c79209789205c9de5fcc7aedfd6308057d40b618 |
|
16-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
First part of changes to eliminate problems with cv-qualifiers and sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a4923eb7c4b04d360cb2747641a5e92818edf804 |
|
16-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
First part of changes to eliminate problems with cv-qualifiers and sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db8393ca63e3a82398c3bfb4e7b441d72995d707 |
|
10-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Move all of the type-printing logic to its own C++ source file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fee8a3c003a8894002810a6373bd5b895290974e |
|
10-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Move all of the type-printing logic to its own C++ source file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
406b56a9a0ed38e9fbcea1f51ea28ee3719517d3 |
|
09-Nov-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass of ArrayType>()) does not instantiate. Update all callers that used this unsafe feature to use the appropriate ASTContext::getAs*ArrayType method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
89c49f09b0292dc7c03885f6c765d667a9837597 |
|
09-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass of ArrayType>()) does not instantiate. Update all callers that used this unsafe feature to use the appropriate ASTContext::getAs*ArrayType method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
afcfd753e6c5d50edb13dd0b7f46fc40f6aa8fa0 |
|
07-Nov-2009 |
John McCall <rjmccall@apple.com> |
Implement -Wconversion. Off by default, in the non-gcc group. There's significant work left to be done to reduce the false-positive rate here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
680523a91dd3351389667c8de17121ba7ae82673 |
|
07-Nov-2009 |
John McCall <rjmccall@apple.com> |
Implement -Wconversion. Off by default, in the non-gcc group. There's significant work left to be done to reduce the false-positive rate here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
588613178e3a10e2b840c8f4db9e058f2fec0005 |
|
29-Oct-2009 |
John McCall <rjmccall@apple.com> |
Track source information for template arguments and template specialization types. Preserve it through template instantiation. Preserve it through PCH, although TSTs themselves aren't serializable, so that's pretty much meaningless. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
833ca991c1bfc967f0995974ca86f66ba1f666b5 |
|
29-Oct-2009 |
John McCall <rjmccall@apple.com> |
Track source information for template arguments and template specialization types. Preserve it through template instantiation. Preserve it through PCH, although TSTs themselves aren't serializable, so that's pretty much meaningless. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4ea8425c9601895fa137f877bc784f75f20adac6 |
|
23-Oct-2009 |
John McCall <rjmccall@apple.com> |
When building types from declarators, instead of building two types (one for the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
54e14c4db764c0636160d26c5bbf491637c83a76 |
|
23-Oct-2009 |
John McCall <rjmccall@apple.com> |
When building types from declarators, instead of building two types (one for the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7480534aa1979f5c8a6c1d59ede223ba21f280e5 |
|
22-Oct-2009 |
John McCall <rjmccall@apple.com> |
Canonicality is a property of qualified types, not unqualified types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
467b27b9a24bdc823218ad1ad0e37673b6cc1e83 |
|
22-Oct-2009 |
John McCall <rjmccall@apple.com> |
Canonicality is a property of qualified types, not unqualified types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5cc4b067c9a94ff7a98c34b4a8b14f2643980c79 |
|
18-Oct-2009 |
John McCall <rjmccall@apple.com> |
When performing template-substitution into a type, don't just replace the TemplateTypeParmType with the substituted type directly; instead, replace it with a SubstTemplateTypeParmType which will note that the type was originally written as a template type parameter. This makes it reasonable to preserve source information even through template substitution. Also define the new SubstTemplateTypeParmType class, obviously. For consistency with current behavior, we stringize these types as if they were the underlying type. I'm not sure this is the right thing to do. At any rate, I paled at adding yet another clause to the don't-desugar 'if' statement, so I extracted a function to do it. The new function also does The Right Thing more often, I think: e.g. if we have a chain of typedefs leading to a vector type, we will now desugar all but the last one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
49a832bd499d6f61c23655f1fac99f0dd229756e |
|
18-Oct-2009 |
John McCall <rjmccall@apple.com> |
When performing template-substitution into a type, don't just replace the TemplateTypeParmType with the substituted type directly; instead, replace it with a SubstTemplateTypeParmType which will note that the type was originally written as a template type parameter. This makes it reasonable to preserve source information even through template substitution. Also define the new SubstTemplateTypeParmType class, obviously. For consistency with current behavior, we stringize these types as if they were the underlying type. I'm not sure this is the right thing to do. At any rate, I paled at adding yet another clause to the don't-desugar 'if' statement, so I extracted a function to do it. The new function also does The Right Thing more often, I think: e.g. if we have a chain of typedefs leading to a vector type, we will now desugar all but the last one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
32b25ab7d4b3355b804e367c90f5cd55f4c9187e |
|
16-Oct-2009 |
John McCall <rjmccall@apple.com> |
Remove the ConstantArrayType subtypes. This information is preserved in the TypeLoc records for declarations; it should not be necessary to represent it directly in the type system. Please complain if you were using these classes and feel you can't replicate previous functionality using the TypeLoc API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
46a617a792bfab0d9b1e057371ea3b9540802226 |
|
16-Oct-2009 |
John McCall <rjmccall@apple.com> |
Remove the ConstantArrayType subtypes. This information is preserved in the TypeLoc records for declarations; it should not be necessary to represent it directly in the type system. Please complain if you were using these classes and feel you can't replicate previous functionality using the TypeLoc API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0afd9f4ac27a7cef40c7a879f4b3fac0c612a218 |
|
30-Sep-2009 |
John McCall <rjmccall@apple.com> |
Desugaring optimizations. Add single-step desugaring methods to all concrete types. Use unqualified desugaring for getAs<> and sundry. Fix a few users to either not desugar or use qualified desugar, as seemed appropriate. Removed Type's qualified desugar method, as it was easy to accidentally use instead of QualType's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bf1cc05907ceb2081e8158b26f3d3f48b31caad3 |
|
30-Sep-2009 |
John McCall <rjmccall@apple.com> |
Desugaring optimizations. Add single-step desugaring methods to all concrete types. Use unqualified desugaring for getAs<> and sundry. Fix a few users to either not desugar or use qualified desugar, as seemed appropriate. Removed Type's qualified desugar method, as it was easy to accidentally use instead of QualType's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3921aa9c84f6876fdf2b7feb596ccb94fb83989e |
|
29-Sep-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Introduce ObjCProtocolListType type subclass. This is used only for keeping detailed type source information for protocol references, it should not participate in the semantics of the type system. Its protocol list is not canonicalized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
24fab41057e4b67ed69a6b4027d5ae0f2f6934dc |
|
29-Sep-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ObjCProtocolListType type subclass. This is used only for keeping detailed type source information for protocol references, it should not participate in the semantics of the type system. Its protocol list is not canonicalized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6cbe8f397e8fd4aa01310bcefdcbe36639eea7e0 |
|
29-Sep-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Introduce Type::getTypeClassName() that returns the string associated with the TypeClass enum. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cd01f17358dc8ef19338c0e2321138dd0a6160d9 |
|
29-Sep-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce Type::getTypeClassName() that returns the string associated with the TypeClass enum. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
451b7b9a60208869cf5d6d958134cb104343949f |
|
25-Sep-2009 |
John McCall <rjmccall@apple.com> |
Make it really, really easy to change the alignment of Type (and ExtQuals). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6b304a0254a13f42390b865ff5ba668a49cc58ae |
|
25-Sep-2009 |
John McCall <rjmccall@apple.com> |
Make it really, really easy to change the alignment of Type (and ExtQuals). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3ddc81456e4ee7e1017f17860053f3eec505a50e |
|
24-Sep-2009 |
John McCall <rjmccall@apple.com> |
Refactor the representation of qualifiers to bring ExtQualType out of the Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0953e767ff7817f97b3ab20896b229891eeff45b |
|
24-Sep-2009 |
John McCall <rjmccall@apple.com> |
Refactor the representation of qualifiers to bring ExtQualType out of the Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cac0eaf6caa1035b6a971b32adeea895ba14715c |
|
22-Sep-2009 |
John McCall <rjmccall@apple.com> |
Change all the Type::getAsFoo() methods to specializations of Type::getAs(). Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
183700f494ec9b6701b6efe82bcb25f4c79ba561 |
|
22-Sep-2009 |
John McCall <rjmccall@apple.com> |
Change all the Type::getAsFoo() methods to specializations of Type::getAs(). Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
25cf760b54d3b88633827501013bc51a29b28aba |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4bb774e2352b6c5f459b345a5e0f41bd244e70a7 |
|
08-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a regression in generating objc's GC API in assiging to c pointer types with a GC'able attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ac423ba85bb59cc7cc1d43081b20d7e8d40355ff |
|
08-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a regression in generating objc's GC API in assiging to c pointer types with a GC'able attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
379448fc7bc91bba33e3d2df073f6cf011960b96 |
|
05-Sep-2009 |
John McCall <rjmccall@apple.com> |
Basic support for representing elaborated type specifiers directly in the AST. The current thinking is to create these only in C++ mode for efficiency. But for now, they're not being created at all; patch to follow. This will let us do things like verify that tags match during template instantation, as well as signal that an elaborated type specifier was used for clients that actually care. Optimally, the TypeLoc hierarchy should be adjusted to carry tag location information as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7da2431c23ef1ee8acb114e39692246e1801afc2 |
|
05-Sep-2009 |
John McCall <rjmccall@apple.com> |
Basic support for representing elaborated type specifiers directly in the AST. The current thinking is to create these only in C++ mode for efficiency. But for now, they're not being created at all; patch to follow. This will let us do things like verify that tags match during template instantation, as well as signal that an elaborated type specifier was used for clients that actually care. Optimally, the TypeLoc hierarchy should be adjusted to carry tag location information as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fd3d5fdac0d25464e1b9c36bc646965494d44f66 |
|
19-Aug-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Introduce LocInfoType which is a Sema-specific implementation detail. This is a Type subclass that can hold a DeclaratorInfo* when we have type source info coming out of a declarator that we want to preserve. This is used only at the "border" of Parser/Sema for passing/getting QualTypes, it does not participate in the type system semantics in any way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1bb8a45f7386a23871598d05141a07af03067925 |
|
19-Aug-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce LocInfoType which is a Sema-specific implementation detail. This is a Type subclass that can hold a DeclaratorInfo* when we have type source info coming out of a declarator that we want to preserve. This is used only at the "border" of Parser/Sema for passing/getting QualTypes, it does not participate in the type system semantics in any way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cfe6ae592450d8466b4d78b59ff4526266549a9a |
|
05-Aug-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce the canonical type smart pointers, and use them in a few places to tighten up the static type system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
50d62d1b4a98adbc83de8f8cd1379ea1c25656f7 |
|
05-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce the canonical type smart pointers, and use them in a few places to tighten up the static type system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0c1d966bf0f3c5f7a787840c514c3d92fb4cbb3b |
|
31-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Canonicalize dependent extended vector types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ec09f1dc123e1942ed756e8ee4fef86451eac9e |
|
31-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Canonicalize dependent extended vector types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7fc8ed7fb83dd8bcd680756624e290d0702d281d |
|
31-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Build canonical types for dependently-sized array types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
04d4beee4b86af20a9e4457023d3925cab8f9908 |
|
31-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Build canonical types for dependently-sized array types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d63e16cae1577c934a6637baebd04c2bdcd2ebf8 |
|
31-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Canonicalization of dependent C++0x decltype types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d702ae1cd5cfa19d884cbef77e1df99395138bb |
|
31-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Canonicalization of dependent C++0x decltype types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
63d22fa6071690209b339451e4939de120a45e70 |
|
31-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Canonicalization for dependent typeof(expr) types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b197572cf1cd70a817a1f546478cb2cb9112c48e |
|
31-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Canonicalization for dependent typeof(expr) types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d00cd9ec368acf3e615d55f659eca4639044ba7d |
|
29-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Change uses of: Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6217b80b7a1379b74cced1c076338262c3c980b3 |
|
29-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Change uses of: Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
99eef4a6d3632a78155e7639a9f91d10b33e8218 |
|
29-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Use the new statement/expression profiling code to unique dependent template arguments, as in template specialization types. This permits matching out-of-line definitions of members for class templates that involve non-type template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
828e226ab7ed08b3eb766549e9d3306432137460 |
|
29-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Use the new statement/expression profiling code to unique dependent template arguments, as in template specialization types. This permits matching out-of-line definitions of members for class templates that involve non-type template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
90e18745436d0889e8bb7fba650263b38f05694e |
|
29-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code refactoring to define getCXXRecordDeclForPointerType and use it in several places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a91d6a6619a91d0ca7102d8ab5678d855f04d850 |
|
29-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code refactoring to define getCXXRecordDeclForPointerType and use it in several places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fda7da669298c7428a1c963013d9a8c71cbedbc5 |
|
28-Jul-2009 |
John McCall <rjmccall@apple.com> |
Bounds checking for address spaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
efadb7768e7c7418185f5a4010ecd8b21ca9731b |
|
28-Jul-2009 |
John McCall <rjmccall@apple.com> |
Bounds checking for address spaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b230eac0d43ae1952dc1c5fa8754f0dd7dce1496 |
|
28-Jul-2009 |
John McCall <rjmccall@apple.com> |
Reimplement QualifierSet using a single word, as requested by dgregor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7a1bcdf26d48c2c40e900a973f7ffca45f451526 |
|
28-Jul-2009 |
John McCall <rjmccall@apple.com> |
Reimplement QualifierSet using a single word, as requested by dgregor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0f95d329cc0ba37faa0f3d522991a581a407482c |
|
26-Jul-2009 |
Mike Stump <mrs@apple.com> |
Improve comments (Thanks Fariborz). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ae92140b542d5c1c096e39e74e59526184819b30 |
|
26-Jul-2009 |
Mike Stump <mrs@apple.com> |
Improve comments (Thanks Fariborz). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1bb806498909a43a7829edb21c42606335d69694 |
|
25-Jul-2009 |
Mike Stump <mrs@apple.com> |
Add noreturn as a type attribute, handle printing for them and handle calls to noreturn function pointers when CFG building. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2455636163fdd18581d7fdae816433f886d88213 |
|
25-Jul-2009 |
Mike Stump <mrs@apple.com> |
Add noreturn as a type attribute, handle printing for them and handle calls to noreturn function pointers when CFG building. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d484def4535a53f2ecfaf28410727773cb01c8da |
|
25-Jul-2009 |
John McCall <rjmccall@apple.com> |
Flesh out the QualifierSet API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8fceb57f6980c67bb8f12e29d75736cf057951e8 |
|
25-Jul-2009 |
John McCall <rjmccall@apple.com> |
Flesh out the QualifierSet API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
29d293b79901491af6da2e2368ea8e506402e1fe |
|
24-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Allow front-end 'isa' access on object's of type 'id'. Enhance test case to cover 'isa' access on interface types (clang produces an error, GCC produces a warning). Still need back-end CodeGen for ObjCIsaExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f242b1b0c4e998911cb96b2ba7e27ab4a5abaed3 |
|
24-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Allow front-end 'isa' access on object's of type 'id'. Enhance test case to cover 'isa' access on interface types (clang produces an error, GCC produces a warning). Still need back-end CodeGen for ObjCIsaExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4af0523edc341c6e7bb4499c45ce45397f2dc979 |
|
24-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
This patch fixes the implementations of the __has_trivial_destructor and __has_trivial_constructor builtin pseudo-functions and additionally implements __has_trivial_copy and __has_trivial_assign, from John McCall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5e03f9ea8174ae588c5e69ec6b5ef4c68f8fd766 |
|
24-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
This patch fixes the implementations of the __has_trivial_destructor and __has_trivial_constructor builtin pseudo-functions and additionally implements __has_trivial_copy and __has_trivial_assign, from John McCall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27bc49f518604f310aca9ed21be0bee12bdc6237 |
|
22-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Fix <rdar://problem/6770276> Support Class<Proto> syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
470301bac9c8abfc6b451b3b669c6695a9fd1518 |
|
22-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Fix <rdar://problem/6770276> Support Class<Proto> syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
77763c58e3b7783c8e54671c2b696ecd81ed524f |
|
18-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Remove ObjCQualifiedInterfaceType:-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c15cb2af27514ecc879daba9aa01389c5203685d |
|
18-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Remove ObjCQualifiedInterfaceType:-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d9b39bfecbc4faec367c3b2b53b8a3c7f71bdc3b |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
35366a67baa970c287c714c957cf78a4131cf60d |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
60d5671481f35143349d08261af20f08facbde17 |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5cad1f74469d4d8b4fc51fe53a7837778aeb6107 |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6a6c0971f29d9fb7cb5e7318a4a493ed1331258c |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Replace Type::getAsReferenceType() with Type::getAs<ReferenceType>(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
808825cd08704d1cccef605f8cd3ef83c93eac78 |
|
17-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Replace Type::getAsReferenceType() with Type::getAs<ReferenceType>(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f5de0a3cbaa216daf2ea7e42611bbd1ebad42fa7 |
|
16-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Add member template 'Type::getAs<T>', which converts a Type* to a respective T*. This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1a1a6e2bd4c5aefd7fd643cf25915f9623a02e59 |
|
16-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Add member template 'Type::getAs<T>', which converts a Type* to a respective T*. This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a960479e82ebf6c28dfc5843f0d8bf34db5702e3 |
|
16-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Cleanup a couple loops and improve a comment (based on feedback from Fariborz). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8f16756441450ed9fb39316e47d107fc2a1ef35b |
|
16-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Cleanup a couple loops and improve a comment (based on feedback from Fariborz). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9f324ae90f87c56d3c1fc87b27bb9b6ebdf277b0 |
|
15-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Add a "t". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f6265efe7e35fb0fba315da6391368aeee1e57c9 |
|
15-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Add a "t". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7bffd37bd2642e9d1bf0d093e9c1a7b3467f3014 |
|
15-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Implement the ObjC pseudo built-in types as clang "BuiltinType's". I say pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective). This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-). This patch also adds Type::isObjCBuiltinType(). This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
de2e22d33afec98324a66a358dfe0951b3c7259a |
|
15-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Implement the ObjC pseudo built-in types as clang "BuiltinType's". I say pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective). This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-). This patch also adds Type::isObjCBuiltinType(). This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
79ae19a7c9421e17ba26ea9cbf5a7f4dcc015cde |
|
14-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Introduce Type::isAnyPointerType() and convert all clients (suggested by Chris). I don't love the name, however it simplifies the code and is a worthwhile change. If/when we come up with a better name, we can do a search/replace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
58f9f2c884af6b72d036b746a016d8031d31cb7a |
|
14-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Introduce Type::isAnyPointerType() and convert all clients (suggested by Chris). I don't love the name, however it simplifies the code and is a worthwhile change. If/when we come up with a better name, we can do a search/replace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2bcacb61cf94b71e5c87f29d517f8dc29fe3993e |
|
14-Jul-2009 |
Alisdair Meredith <public@alisdairm.net> |
Basic support for C++0x unicode types. Support for literals will follow in an incremental patch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f5c209d23b20ada4a9b6235db50317239cbf6ae1 |
|
14-Jul-2009 |
Alisdair Meredith <public@alisdairm.net> |
Basic support for C++0x unicode types. Support for literals will follow in an incremental patch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
898111463b64a26d55af56474ad8cca1fdb76268 |
|
13-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
- Improve comment for Type::getPointeeType(). - Remove a couple redundant casts/returns. - Fix 80 column violations for all getAsStringInternal() methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f8910df57799256c1897a8610dc52685729ae90e |
|
13-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
- Improve comment for Type::getPointeeType(). - Remove a couple redundant casts/returns. - Fix 80 column violations for all getAsStringInternal() methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
198e8e46d0bfe535f044df35d1b87da86a148a84 |
|
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3b4ea54acf01f72f6eb74d96689dda86d950228f |
|
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
329ec22704eee011640ebf37c29343e82fb984c6 |
|
11-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
This patch includes a conceptually simple, but very intrusive/pervasive change. The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches. This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic. By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
14108da7f7fc059772711e4ffee1322a27b152a7 |
|
11-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
This patch includes a conceptually simple, but very intrusive/pervasive change. The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches. This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic. By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
42f394e67047624dcc15d22239f615885ad712ac |
|
10-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a problem that Eli noticed, and that Doug helped me fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
563a03b1338d31c2462def43253a722bc885d384 |
|
10-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a problem that Eli noticed, and that Doug helped me fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d1c0b682af81784cb991a5479097e795b5868bc4 |
|
08-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
The canonical type of typeof or decltype with a dependent type is itself, not Context.DependentTy. I'll let Anders check in the test case for this one... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dd0257c77719a13d4acd513df40b04300cbfc871 |
|
08-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
The canonical type of typeof or decltype with a dependent type is itself, not Context.DependentTy. I'll let Anders check in the test case for this one... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1d381135f0c9dcbac521112b3f6936caf871b91a |
|
06-Jul-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Keep track of the Expr used to describe the size of an array type, from Enea Zaffanella! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7e7eb3da052a6d80ddf2377cab0384c798f73f75 |
|
06-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Keep track of the Expr used to describe the size of an array type, from Enea Zaffanella! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5ca84bccd83982d3941d68dd88139ca43f6322a0 |
|
01-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Rework Sema::CheckConditionalOperands(). No functionality change. This was necessary to simplify some other changes I'm making (wrt ObjC type cleanups). The idea is to separate the constraint checks for block pointers, ObjC pointers, and C pointers (the previous code combined them into one clause). Note: This routine will be further simplified when I integrate the ObjC type cleanups (forthcoming). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7154a77e7c1f23418342d3b72836ab504aa7821e |
|
01-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Rework Sema::CheckConditionalOperands(). No functionality change. This was necessary to simplify some other changes I'm making (wrt ObjC type cleanups). The idea is to separate the constraint checks for block pointers, ObjC pointers, and C pointers (the previous code combined them into one clause). Note: This routine will be further simplified when I integrate the ObjC type cleanups (forthcoming). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7099c789f054f1e7480f498d60aa94b0326c285f |
|
30-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions. This is simple enough, but then I thought it would be nice to make PrintingPolicy get a LangOptions so that various things can key off "bool" and "C++" independently. This spiraled out of control. There are many fixme's, but I think things are slightly better than they were before. One thing that can be improved: CFG should probably have an ASTContext pointer in it, which would simplify its clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e4f2142d00fa5fdb580c4e2413da91882d955381 |
|
30-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions. This is simple enough, but then I thought it would be nice to make PrintingPolicy get a LangOptions so that various things can key off "bool" and "C++" independently. This spiraled out of control. There are many fixme's, but I think things are slightly better than they were before. One thing that can be improved: CFG should probably have an ASTContext pointer in it, which would simplify its clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4a8498cc0f251e839912285112a014a5d1248648 |
|
26-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Implement enough of the 'auto' keyword so we can claim to support N2546. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e89d15944dd3be750a09805ad21222d2fa9321fa |
|
26-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Implement enough of the 'auto' keyword so we can claim to support N2546. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e2ed6f7a96d7cc444f4a7f15775164b3eccc3c34 |
|
25-Jun-2009 |
Nate Begeman <natebegeman@mac.com> |
OpenCL 1.0 Support, patch 1/N: upper case swizzle operator and hex element index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
131f4658249b2a7d2d7e30fe07e84c484f79ef99 |
|
25-Jun-2009 |
Nate Begeman <natebegeman@mac.com> |
OpenCL 1.0 Support, patch 1/N: upper case swizzle operator and hex element index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
93ab533a2e9522a2e9a7695cb7446812fc9e70a6 |
|
24-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Add a DecltypeType type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
395b475a4474f1c7574d927ad142ca0c7997cbca |
|
24-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Add a DecltypeType type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
68a7a6db3693e6df54a2198f3ee4e3f87e7f9ac0 |
|
18-Jun-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Some cleanups suggested by Chris git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f6ddb737cb882ffbf0b75a9abd50b930cc2b9068 |
|
18-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Some cleanups suggested by Chris git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c75c1a882cad91f2edc6a926eb8cd725abad2262 |
|
18-Jun-2009 |
Steve Naroff <snaroff@apple.com> |
First step toward fixing <rdar://problem/6613046> refactor clang objc type representation. Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType). This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d1b3c2dd5bc1f3103bee6137957aa7c5f8f2f0bc |
|
18-Jun-2009 |
Steve Naroff <snaroff@apple.com> |
First step toward fixing <rdar://problem/6613046> refactor clang objc type representation. Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType). This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2a2e0405001f22e9026cb0dec219146996d1e7b6 |
|
17-Jun-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Support dependent extended vector types and template instantiation thereof. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9cdda0cf8528e3d595be9bfa002f0450074beb4d |
|
17-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Support dependent extended vector types and template instantiation thereof. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4e3d355931542dc1a40c35c108f7e0b72876584c |
|
16-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Keep track of whether a type parameter type is a parameter pack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
76e4ce42a30cee4dc40ce7c6014874fbc4f9baa7 |
|
16-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Keep track of whether a type parameter type is a parameter pack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ac5e9f9de0959d5b1d390dc9bdad2d6f3d77c5cb |
|
01-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a bug in hasEmptyExceptionSpec. (Thanks Sebastian for noticing). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a12823f6c0ec9e0e644a9d0ee153e973f49c63fc |
|
01-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a bug in hasEmptyExceptionSpec. (Thanks Sebastian for noticing). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
11269048f03d91e991150c429dc874ae3999acb0 |
|
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Improve irgen of 'new' further. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d3fd6bad1249d3f34d71b73e2333fab0db51cce4 |
|
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Improve irgen of 'new' further. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
84bca951282f362c439cc7993fcb4d145384e416 |
|
30-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add support for PrintingPolicy::SuppressTypeSpecifiers to type printing. (I have a work-in-progress patch which uses this.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
22b61e937dcd8ba2e14764c367f975a392ec7da0 |
|
30-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add support for PrintingPolicy::SuppressTypeSpecifiers to type printing. (I have a work-in-progress patch which uses this.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3bf3bbcb3cf79cc5bc065a011f5ae195667d3a29 |
|
29-May-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Create a new PrintingPolicy class, which we pass down through the AST printing logic to help customize the output. For now, we use this rather than a special flag to suppress the "struct" when printing "struct X" and to print the Boolean type as "bool" in C++ but "_Bool" in C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d249e1d1f1498b81314459ceda19d6ff25c278ad |
|
29-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Create a new PrintingPolicy class, which we pass down through the AST printing logic to help customize the output. For now, we use this rather than a special flag to suppress the "struct" when printing "struct X" and to print the Boolean type as "bool" in C++ but "_Bool" in C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2767d88f088ce07f489e6a64592950f9c0a91ebd |
|
28-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reintroduce the home for exception specs, and make Sema fill it. However, keep the spec out of the canonical type this time. Net effect is currently nothing, because the spec isn't checked anywhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
465226e23a3008bd68973513dda1f9e3cd27dbdd |
|
28-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reintroduce the home for exception specs, and make Sema fill it. However, keep the spec out of the canonical type this time. Net effect is currently nothing, because the spec isn't checked anywhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
83418529244038b34ae9990b4cf6ac0a92f8c741 |
|
27-May-2009 |
Steve Naroff <snaroff@apple.com> |
Convert ObjC qualified type clients over to using iterators. This allows me to remove some API that I don't want to carry over to ObjCObjectPointerType. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
446ee4eb4fc4c705a59365252df7a5c253daafa1 |
|
27-May-2009 |
Steve Naroff <snaroff@apple.com> |
Convert ObjC qualified type clients over to using iterators. This allows me to remove some API that I don't want to carry over to ObjCObjectPointerType. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9054f9878dbe2b1b8384c951ad07759d9de9dc8c |
|
11-May-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Implement the semantics of the injected-class-name within a class template. The injected-class-name is either a type or a template, depending on whether a '<' follows it. As a type, the injected-class-name's template argument list contains its template parameters in declaration order. As part of this, add logic for canonicalizing declarations, and be sure to canonicalize declarations used in template names and template arguments. A TagType is dependent if the declaration it references is dependent. I'm not happy about the rather complicated protocol needed to use ASTContext::getTemplateSpecializationType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7da97d0f31e1ec16998d3de2cfd2e88fe3736673 |
|
11-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement the semantics of the injected-class-name within a class template. The injected-class-name is either a type or a template, depending on whether a '<' follows it. As a type, the injected-class-name's template argument list contains its template parameters in declaration order. As part of this, add logic for canonicalizing declarations, and be sure to canonicalize declarations used in template names and template arguments. A TagType is dependent if the declaration it references is dependent. I'm not happy about the rather complicated protocol needed to use ASTContext::getTemplateSpecializationType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5d0ead717d57405b4a3b34a55b77579ea8b2774e |
|
10-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement C++0x nullptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6e8ed16ffef02b82995a90bdcf10ffff7d63839a |
|
10-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement C++0x nullptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ba9a371cb3438f165ff6191c42732f699968eea2 |
|
07-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Back out r70506 (exception spec in AST) again. We won't have exception specs until we've had a lot more discussion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bfa2fcba545fb270f31205d616846c2bfaf4e47e |
|
07-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Back out r70506 (exception spec in AST) again. We won't have exception specs until we've had a lot more discussion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8813477d35efbfe22f9bb0436ec948e72913fb45 |
|
02-May-2009 |
Chris Lattner <sabre@nondot.org> |
explicitly know that the alignment of Type* is 3 bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bfadf55ba5b736b13cc3e0fbc2b184569bc9f304 |
|
02-May-2009 |
Chris Lattner <sabre@nondot.org> |
explicitly know that the alignment of Type* is 3 bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
74942cde3da623741b60c2524fc44ef0cb35724b |
|
30-Apr-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make a home for exception specs in the AST. Now Sema can hook them up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7b9a2ee5a4393001bdec7dec841eb7c811da492c |
|
30-Apr-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make a home for exception specs in the AST. Now Sema can hook them up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6cc7e415d42291bf01e0295d9d6344e106613c48 |
|
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
initial support for __[u]int128_t, which should be basically compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2df9ced9fd1e8c7d7b38443db07e0e811de22571 |
|
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
initial support for __[u]int128_t, which should be basically compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
608ff6223083952584ba0ada6d70070bbc2f045f |
|
22-Apr-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Remove the serialization code that predates precompiled headers. Future approaches to (de-)serializing ASTs will be based on the PCH infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
370187c8a3e96517c943329f2511737a04b85450 |
|
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Remove the serialization code that predates precompiled headers. Future approaches to (de-)serializing ASTs will be based on the PCH infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b64206c5f93e51a1857706eeab24cf945491ef42 |
|
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ObjCQualifiedClass is dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
068360e16fa4504a6fb80affebae5c5713629a96 |
|
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ObjCQualifiedClass is dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7ff82e7e864ca1825cef56a84b80a7999aa70316 |
|
21-Apr-2009 |
Mike Stump <mrs@apple.com> |
Fixup codegen for write barriers for block variables. Radar 6786715 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
75b163f4c832696edf4d66d8ac1ec0ed5ea59e17 |
|
21-Apr-2009 |
Mike Stump <mrs@apple.com> |
Fixup codegen for write barriers for block variables. Radar 6786715 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8fc38c21132d37ff76f624ab1dcfe03ba63e2518 |
|
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix rdar://6774906, a crash handling implicit conversions between pointers in different address spaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ecca7536488e425417dcb005c39cc15ae1947aab |
|
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix rdar://6774906, a crash handling implicit conversions between pointers in different address spaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
da0c4d26ecb98b02a0f22bde39a1a45dbc2f6d3f |
|
01-Apr-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Give Type::getDesugaredType a "for-display" mode that can apply more heuristics to determine when it's useful to desugar a type for display to the user. Introduce two C++-specific heuristics: - For a qualified type (like "foo::bar"), only produce a new desugred type if desugaring the qualified type ("bar", in this case) produces something interesting. For example, if "foo::bar" refers to a class named "bar", don't desugar. However, if "foo::bar" refers to a typedef of something else, desugar to that something else. This gives some useful desugaring such as "foo::bar (aka 'int')". - Don't desugar class template specialization types like "basic_string<char>" down to their underlying "class basic_string<char, char_traits<char>, allocator<char>>, etc."; it's better just to leave such types alone. Update diagnostics.html with some discussion and examples of type preservation in C++, showing qualified names and class template specialization types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
969c689d893a248eca4f049f5b89f747e66e4bff |
|
01-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Give Type::getDesugaredType a "for-display" mode that can apply more heuristics to determine when it's useful to desugar a type for display to the user. Introduce two C++-specific heuristics: - For a qualified type (like "foo::bar"), only produce a new desugred type if desugaring the qualified type ("bar", in this case) produces something interesting. For example, if "foo::bar" refers to a class named "bar", don't desugar. However, if "foo::bar" refers to a typedef of something else, desugar to that something else. This gives some useful desugaring such as "foo::bar (aka 'int')". - Don't desugar class template specialization types like "basic_string<char>" down to their underlying "class basic_string<char, char_traits<char>, allocator<char>>, etc."; it's better just to leave such types alone. Update diagnostics.html with some discussion and examples of type preservation in C++, showing qualified names and class template specialization types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
77da58034d00866f3261d2c657a5823578f73028 |
|
01-Apr-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Parsing, semantic analysis, and template instantiation for typename specifiers that terminate in a simple-template-id, e.g., typename MetaFun::template apply<T1, T2> Also, implement template instantiation for dependent nested-name-specifiers that involve unresolved identifiers, e.g., typename T::type::type git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1734317845d60307d474b5da8a8d33adbaf5e723 |
|
01-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Parsing, semantic analysis, and template instantiation for typename specifiers that terminate in a simple-template-id, e.g., typename MetaFun::template apply<T1, T2> Also, implement template instantiation for dependent nested-name-specifiers that involve unresolved identifiers, e.g., typename T::type::type git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
41b780c6caa012115bfdcccff94b9965d4de71f0 |
|
31-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
disable copying of Type objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
16ff705a594697f98b9473f9b7e7d378f331fe4b |
|
31-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
disable copying of Type objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dd13e8468462e60971487bcd5915419762dab814 |
|
31-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Improve the representation of template names in the AST. This representation handles the various ways in which one can name a template, including unqualified references ("vector"), qualified references ("std::vector"), and dependent template names ("MetaFun::template apply"). One immediate effect of this change is that the representation of nested-name-specifiers in type names for class template specializations (e.g., std::vector<int>) is more accurate. Rather than representing std::vector<int> as std::(vector<int>) we represent it as (std::vector)<int> which more closely follows the C++ grammar. Additionally, templates are no longer represented as declarations (DeclPtrTy) in Parse-Sema interactions. Instead, I've introduced a new OpaquePtr type (TemplateTy) that holds the representation of a TemplateName. This will simplify the handling of dependent template-names, once we get there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7532dc66648cfe7432c9fe66dec5225f0ab301c6 |
|
31-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve the representation of template names in the AST. This representation handles the various ways in which one can name a template, including unqualified references ("vector"), qualified references ("std::vector"), and dependent template names ("MetaFun::template apply"). One immediate effect of this change is that the representation of nested-name-specifiers in type names for class template specializations (e.g., std::vector<int>) is more accurate. Rather than representing std::vector<int> as std::(vector<int>) we represent it as (std::vector)<int> which more closely follows the C++ grammar. Additionally, templates are no longer represented as declarations (DeclPtrTy) in Parse-Sema interactions. Instead, I've introduced a new OpaquePtr type (TemplateTy) that holds the representation of a TemplateName. This will simplify the handling of dependent template-names, once we get there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e41419144a0a01456f5426efcd9b919f68284527 |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
adjust to llvm mainline changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0eda3b31a672ea486fa92b9bc49a2c91be856b53 |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
adjust to llvm mainline changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5e05f29efda155f4505b87eaa54331e45b1833dd |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add getNumLowBitsAvailable for OpaquePtr and QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
11a7f35c2e3a496342031c2ed721f58e691ebfca |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add getNumLowBitsAvailable for OpaquePtr and QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d776b2da9bd694c41f1506e152aeb35d1babeba6 |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
follow llvm mainline, where PointerLikeTypeInfo got renamed to PointerLikeTypeTraits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
daae940507f2e93c6fa12e8062fa958e34cc2d1c |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
follow llvm mainline, where PointerLikeTypeInfo got renamed to PointerLikeTypeTraits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cdd67caf66a2aa1a95da3ed9726bea7a3659b35b |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
implement the PointerLikeTypeInfo trait for QualType, allowing it to be stuck into a SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4e7072872e8e2ed76a4c6933424bffa253896e7e |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
implement the PointerLikeTypeInfo trait for QualType, allowing it to be stuck into a SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d30226003ea60119b19901b7813821c7ec3d7e55 |
|
28-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Initial implementation of parsing, semantic analysis, and template instantiation for C++ typename-specifiers such as typename T::type The parsing of typename-specifiers is relatively easy thanks to annotation tokens. When we see the "typename", we parse the typename-specifier and produce a typename annotation token. There are only a few places where we need to handle this. We currently parse the typename-specifier form that terminates in an identifier, but not the simple-template-id form, e.g., typename T::template apply<U, V> Parsing of nested-name-specifiers has a similar problem, since at this point we don't have any representation of a class template specialization whose template-name is unknown. Semantic analysis is only partially complete, with some support for template instantiation that works for simple examples. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d57959af02b4af695276f4204443afe6e5d86bd8 |
|
28-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Initial implementation of parsing, semantic analysis, and template instantiation for C++ typename-specifiers such as typename T::type The parsing of typename-specifiers is relatively easy thanks to annotation tokens. When we see the "typename", we parse the typename-specifier and produce a typename annotation token. There are only a few places where we need to handle this. We currently parse the typename-specifier form that terminates in an identifier, but not the simple-template-id form, e.g., typename T::template apply<U, V> Parsing of nested-name-specifiers has a similar problem, since at this point we don't have any representation of a class template specialization whose template-name is unknown. Semantic analysis is only partially complete, with some support for template instantiation that works for simple examples. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e615803e1c4a70ba66b6687b2b95e1fdcd16cd3b |
|
27-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Clarify that QualifiedNameType is sugar-only. This will matter once we can parse typename-specifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
119057adf21237d53dcd490cec9700dca2465e3e |
|
27-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Clarify that QualifiedNameType is sugar-only. This will matter once we can parse typename-specifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1e589cc31d339860b9df61870930961601d68120 |
|
27-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Revamp our representation of C++ nested-name-specifiers. We now have a uniqued representation that should both save some memory and make it far easier to properly build canonical types for types involving dependent nested-name-specifiers, e.g., "typename T::Nested::type". This approach will greatly simplify the representation of CXXScopeSpec. That'll be next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ab452ba8323d1985e08bade2bced588cddf2cc28 |
|
27-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Revamp our representation of C++ nested-name-specifiers. We now have a uniqued representation that should both save some memory and make it far easier to properly build canonical types for types involving dependent nested-name-specifiers, e.g., "typename T::Nested::type". This approach will greatly simplify the representation of CXXScopeSpec. That'll be next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
26ea122d7b08fc76c2135ef2609af311d951dac3 |
|
24-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Type::isObjectType now implements the (more sensible) C++ definition of "object type" rather than the C definition of "object type". The difference is that C's "object type" excludes incomplete types such as struct X; However, C's definition also makes it far too easy to use isObjectType as a means to detect incomplete types when in fact we should use other means (e.g., Sema::RequireCompleteType) that cope with C++ semantics, including template instantiation. I've already audited every use of isObjectType and isIncompleteType to ensure that they are doing the right thing for both C and C++, so this is patch does not change any functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bad0e656c3732e3539a9cd6525de721d7e47408b |
|
24-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Type::isObjectType now implements the (more sensible) C++ definition of "object type" rather than the C definition of "object type". The difference is that C's "object type" excludes incomplete types such as struct X; However, C's definition also makes it far too easy to use isObjectType as a means to detect incomplete types when in fact we should use other means (e.g., Sema::RequireCompleteType) that cope with C++ semantics, including template instantiation. I've already audited every use of isObjectType and isIncompleteType to ensure that they are doing the right thing for both C and C++, so this is patch does not change any functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a6fe878ddf8804734de57b1bbd1c8a25ff963024 |
|
22-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add some missing type predicates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
26d1a40edc612f4c53399427480592101acb0dbe |
|
22-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add some missing type predicates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7e50826d3559f284eee6659f0aa159c68f504b34 |
|
19-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Generalize printing of nested-name-specifier sequences for use in both QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and use that spelling when printing ASTs. This fixes PR3493. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bad351822117eaf280081494e3dbe4a06c0dbfcf |
|
19-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Generalize printing of nested-name-specifier sequences for use in both QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and use that spelling when printing ASTs. This fixes PR3493. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
734b4baa8e7677d03085a3d3716fa550fb40be63 |
|
19-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce a representation for types that we referred to via a qualified name, e.g., foo::x so that we retain the nested-name-specifier as written in the source code and can reproduce that qualified name when printing the types back (e.g., in diagnostics). This is PR3493, which won't be complete until finished the other tasks mentioned near the end of this commit. The parser's representation of nested-name-specifiers, CXXScopeSpec, is now a bit fatter, because it needs to contain the scopes that precede each '::' and keep track of whether the global scoping operator '::' was at the beginning. For example, we need to keep track of the leading '::', 'foo', and 'bar' in ::foo::bar::x The Action's CXXScopeTy * is no longer a DeclContext *. It's now the opaque version of the new NestedNameSpecifier, which contains a single component of a nested-name-specifier (either a DeclContext * or a Type *, bitmangled). The new sugar type QualifiedNameType composes a sequence of NestedNameSpecifiers with a representation of the type we're actually referring to. At present, we only build QualifiedNameType nodes within Sema::getTypeName. This will be extended to other type-constructing actions (e.g., ActOnClassTemplateId). Also on the way: QualifiedDeclRefExprs will also store a sequence of NestedNameSpecifiers, so that we can print out the property nested-name-specifier. I expect to also use this for handling dependent names like Fibonacci<I - 1>::value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e4e5b054b4917f0ee493bb2fda5b1ec749bfb9a1 |
|
19-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce a representation for types that we referred to via a qualified name, e.g., foo::x so that we retain the nested-name-specifier as written in the source code and can reproduce that qualified name when printing the types back (e.g., in diagnostics). This is PR3493, which won't be complete until finished the other tasks mentioned near the end of this commit. The parser's representation of nested-name-specifiers, CXXScopeSpec, is now a bit fatter, because it needs to contain the scopes that precede each '::' and keep track of whether the global scoping operator '::' was at the beginning. For example, we need to keep track of the leading '::', 'foo', and 'bar' in ::foo::bar::x The Action's CXXScopeTy * is no longer a DeclContext *. It's now the opaque version of the new NestedNameSpecifier, which contains a single component of a nested-name-specifier (either a DeclContext * or a Type *, bitmangled). The new sugar type QualifiedNameType composes a sequence of NestedNameSpecifiers with a representation of the type we're actually referring to. At present, we only build QualifiedNameType nodes within Sema::getTypeName. This will be extended to other type-constructing actions (e.g., ActOnClassTemplateId). Also on the way: QualifiedDeclRefExprs will also store a sequence of NestedNameSpecifiers, so that we can print out the property nested-name-specifier. I expect to also use this for handling dependent names like Fibonacci<I - 1>::value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
835327293da59eb16667ae5a2b7158131865a079 |
|
17-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix Type::getDesugaredType() to remove all direct sugar on a type. For example, if we have a typedef of a typeof of int, we strip all the say down to int. This allows us to simplify the getAs* methods, and is the first step towards fixing PR3817 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2fa8c2598c2615da4639b4e42e9079647bd3aea4 |
|
17-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix Type::getDesugaredType() to remove all direct sugar on a type. For example, if we have a typedef of a typeof of int, we strip all the say down to int. This allows us to simplify the getAs* methods, and is the first step towards fixing PR3817 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ce6fff0486d0e15bc969fb0e3e4850c0784e997f |
|
17-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug can shed some light on some of the fixmes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7c80bd64032e610c0dbd74fc0ef6ea334447f2fd |
|
17-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug can shed some light on some of the fixmes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
00fe3f63604d2be2fafbf42fe5df0795d7d29116 |
|
13-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Refactor the way we handle operator overloading and template instantiation for binary operators. This change moves most of the operator-overloading code from the parser action ActOnBinOp to a new, parser-independent semantic checking routine CreateOverloadedBinOp. Of particular importance is the fact that CreateOverloadedBinOp does *not* perform any name lookup based on the current parsing context (it doesn't take a Scope*), since it has to be usable during template instantiation, when there is no scope information. Rather, it takes a pre-computed set of functions that are visible from the context or via argument-dependent lookup, and adds to that set any member operators and built-in operator candidates. The set of functions is computed in the parser action ActOnBinOp based on the current context (both operator name lookup and argument-dependent lookup). Within a template, the set computed by ActOnBinOp is saved within the type-dependent AST node and is augmented with the results of argument-dependent name lookup at instantiation time (see TemplateExprInstantiator::VisitCXXOperatorCallExpr). Sadly, we can't fully test this yet. I'll follow up with template instantiation for sizeof so that the real fun can begin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
063daf6e196c51f162e0485478355d8e280eef5c |
|
13-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Refactor the way we handle operator overloading and template instantiation for binary operators. This change moves most of the operator-overloading code from the parser action ActOnBinOp to a new, parser-independent semantic checking routine CreateOverloadedBinOp. Of particular importance is the fact that CreateOverloadedBinOp does *not* perform any name lookup based on the current parsing context (it doesn't take a Scope*), since it has to be usable during template instantiation, when there is no scope information. Rather, it takes a pre-computed set of functions that are visible from the context or via argument-dependent lookup, and adds to that set any member operators and built-in operator candidates. The set of functions is computed in the parser action ActOnBinOp based on the current context (both operator name lookup and argument-dependent lookup). Within a template, the set computed by ActOnBinOp is saved within the type-dependent AST node and is augmented with the results of argument-dependent name lookup at instantiation time (see TemplateExprInstantiator::VisitCXXOperatorCallExpr). Sadly, we can't fully test this yet. I'll follow up with template instantiation for sizeof so that the real fun can begin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7c0c17b528295299020428f583a480a6dcb4c7e0 |
|
11-Mar-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
More Next objc2's gc ivar layout bitmap work. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
820e0203079afd64b0de422832f9e0b31a27c0c8 |
|
11-Mar-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
More Next objc2's gc ivar layout bitmap work. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
56d25a726f0bdb4db08021b9e98782ada5241eaf |
|
10-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Extend the notion of active template instantiations to include the context of a template-id for which we need to instantiate default template arguments. In the TextDiagnosticPrinter, don't suppress the caret diagnostic if we are producing a non-note diagnostic that follows a note diagnostic with the same location, because notes are (conceptually) a part of the warning or error that comes before them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
df667e71b1daadeacb230cf94fc717843f1a138a |
|
10-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Extend the notion of active template instantiations to include the context of a template-id for which we need to instantiate default template arguments. In the TextDiagnosticPrinter, don't suppress the caret diagnostic if we are producing a non-note diagnostic that follows a note diagnostic with the same location, because notes are (conceptually) a part of the warning or error that comes before them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f9ff4b14cfc4ee2c4e43dbb71242aa85446ecc2a |
|
10-Mar-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Implement template instantiation for ClassTemplateSpecializationTypes, such as replacing 'T' in vector<T>. There are a few aspects to this: - Extend TemplateArgument to allow arbitrary expressions (an Expr*), and switch ClassTemplateSpecializationType to store TemplateArguments rather than it's own type-or-expression representation. - ClassTemplateSpecializationType can now store dependent types. In that case, the canonical type is another ClassTemplateSpecializationType (with default template arguments expanded) rather than a declaration (we don't build Decls for dependent types). - Split ActOnClassTemplateId into ActOnClassTemplateId (called from the parser) and CheckClassTemplateId (called from ActOnClassTemplateId and InstantiateType). They're smart enough to handle dependent types, now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
40808ce6ac04b102c3b56244a635d6b98eed6d97 |
|
10-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement template instantiation for ClassTemplateSpecializationTypes, such as replacing 'T' in vector<T>. There are a few aspects to this: - Extend TemplateArgument to allow arbitrary expressions (an Expr*), and switch ClassTemplateSpecializationType to store TemplateArguments rather than it's own type-or-expression representation. - ClassTemplateSpecializationType can now store dependent types. In that case, the canonical type is another ClassTemplateSpecializationType (with default template arguments expanded) rather than a declaration (we don't build Decls for dependent types). - Split ActOnClassTemplateId into ActOnClassTemplateId (called from the parser) and CheckClassTemplateId (called from ActOnClassTemplateId and InstantiateType). They're smart enough to handle dependent types, now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2e0475984442f3da3e8359ca453d430ba7b2b2d1 |
|
28-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Eliminate CXXRecordType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c1efaecf0373f1a55c5ef4c234357cf726fc0600 |
|
28-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate CXXRecordType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4fa58905062efa6a12137b1983a1367220182a20 |
|
27-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Create a new TypeNodes.def file that enumerates all of the types, giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
72564e73277e29f6db3305d1f27ba408abb7ed88 |
|
27-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Create a new TypeNodes.def file that enumerates all of the types, giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9c7825b737617339724d43bd04960852271f08e2 |
|
26-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Make the type associated with a ClassTemplateSpecializationDecl be a nicely sugared type that shows how the user wrote the actual specialization. This sugared type won't actually show up until we start doing instantiations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fc705b84347e6fb4746a1a7e26949f64c2f2f358 |
|
26-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Make the type associated with a ClassTemplateSpecializationDecl be a nicely sugared type that shows how the user wrote the actual specialization. This sugared type won't actually show up until we start doing instantiations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fc096bf9d87834466e82482f99b1f6fe7e02bf2a |
|
26-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::hasPointerRepresentation predicate. - For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8958891f5fa1e593c4519a36b3df427ee019d70b |
|
26-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::hasPointerRepresentation predicate. - For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
554af94c53e3a182233fc4fb0f374a9eb3ae6bf6 |
|
26-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove PointerLikeType. - Having pointers and references share a base was not a useful notion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
68694ada8f4d8f6c4b00ea5b900df96428b28fc8 |
|
26-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove PointerLikeType. - Having pointers and references share a base was not a useful notion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6805fc44a1b5179f6390a160c807dfb4480d7138 |
|
23-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
Revert http://llvm.org/viewvc/llvm-project?view=rev&revision=65244. Remove support for "Class<P>". Will be making this an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d461777e23204fe8c480302d8ff76f5847605da6 |
|
23-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
Revert http://llvm.org/viewvc/llvm-project?view=rev&revision=65244. Remove support for "Class<P>". Will be making this an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d305a86f087fd359cf0f033eba0c968e55a61ff4 |
|
21-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
More work to integrate newly added ObjCQualifiedClassType into the type system. This is necessary 'plumbing' to fix <rdar://problem/6497631> Message lookup is sometimes different than gcc's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f7f52e7bf5a4dc36d45b98531e0b21e343fc19de |
|
21-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
More work to integrate newly added ObjCQualifiedClassType into the type system. This is necessary 'plumbing' to fix <rdar://problem/6497631> Message lookup is sometimes different than gcc's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
262a5dd7735667460dc4fcf0bef0b5df0ef5335e |
|
21-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
Add support for GCC ObjC extension "Class<protocol>". Sigh. Found while researching <rdar://problem/6497631> Message lookup is sometimes different than gcc's. Will never be seen in user code. Needed to pass dejagnu testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
15509f4fe73f0e11a8cec602bce4d99d9454b7f6 |
|
21-Feb-2009 |
Steve Naroff <snaroff@apple.com> |
Add support for GCC ObjC extension "Class<protocol>". Sigh. Found while researching <rdar://problem/6497631> Message lookup is sometimes different than gcc's. Will never be seen in user code. Needed to pass dejagnu testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
184541a6a7d218583d79d408534f77c27b7b8c6e |
|
21-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a bug whereby a pointer to a __weak was not recognized as __weak (objc2 gc specific). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4ae1f058902ffd92207af678e1c62e43258127c6 |
|
21-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a bug whereby a pointer to a __weak was not recognized as __weak (objc2 gc specific). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3f7a8f19e231b74ff3d94754b420ea4eb2107afd |
|
19-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3619 by properly considering size modifiers and type quals when uniquing array types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0be2ef2321b1283ead38ebeb83b451335d90e0fe |
|
19-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3619 by properly considering size modifiers and type quals when uniquing array types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
126949ecf2a1051fa3271b42936129ea0299be99 |
|
19-Feb-2009 |
Gabor Greif <ggreif@gmail.com> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b5d486a0a2cb535d8c7e3f5c258eb3cba8cad29 |
|
19-Feb-2009 |
Gabor Greif <ggreif@gmail.com> |
fix typo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
11a31c902ba609eec9991a48eb7a86b13e65d77f |
|
19-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::getAsFunctionNoProto git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
afa74448a07a16c3146accbe0ff03e9c8b0995e5 |
|
19-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::getAsFunctionNoProto git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
85534581967bd50a73c25ae76c96d39b05854a05 |
|
19-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Couple of helpers for objc's gc attributes. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f6123ca578eb8aabb76ecce7df6857482017f502 |
|
19-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Couple of helpers for objc's gc attributes. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
18b5a9a3396fa4bb6630c5bea19399b101aa3043 |
|
18-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
fix some subtle bugs handling the mix of cvr qualifiers, addr spaces, and gc attrs. Add an assert to check that we never get ExtQualType(ExtQualType(T)). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b7d2553edd2532d29b98b9e76bcf6a62bc48b417 |
|
18-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
fix some subtle bugs handling the mix of cvr qualifiers, addr spaces, and gc attrs. Add an assert to check that we never get ExtQualType(ExtQualType(T)). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7029ee3fdeee514a79eafb2508723d27c97fe158 |
|
18-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
minor spacing changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bc5e150b6d94cf131f7d01bc715571b741c5b408 |
|
18-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
minor spacing changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c61a8003b2c69add9fca0ec5064b47251f47c90c |
|
18-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::isSpecificBuiltinType as a shortcut. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e00d5c00f35163308a18ec1d3d2b9dfa1ecaf234 |
|
18-Feb-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Type::isSpecificBuiltinType as a shortcut. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
80ff83cc9136a4737632dc84ad8d124e82f45b76 |
|
18-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Cleanup objc's gc attributes code no longer needed. This make warn-weak-field.m to fail (subject of a followup patch). attr-objc-gc.m no passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ba372b85524f712e5b97a176f6ce0197d365835d |
|
18-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Cleanup objc's gc attributes code no longer needed. This make warn-weak-field.m to fail (subject of a followup patch). attr-objc-gc.m no passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
af23809cb5b961cd4624785e94f339e0a0f5f49e |
|
18-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Representation of objc gc's attribute using ExtQualType. Note that one test attr-objc-gc.m fails. I will fix this after removing these attributes from the Decl nodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d33d9c0cc0cfdcd0b10f35a6acdfb25da4a64f19 |
|
18-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Representation of objc gc's attribute using ExtQualType. Note that one test attr-objc-gc.m fails. I will fix this after removing these attributes from the Decl nodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1e124fe3e31ab37c45b6fbe6a8075e987fc04408 |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Simplified ExtQualType per Chris's feedback. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4886a4204ff2b20bc226ce70d837de5fcd4a79ab |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Simplified ExtQualType per Chris's feedback. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dae66edc49dc2ebbb32377e33012fc3a168c5a4e |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Added support for objc's gc attribute in ExtQualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
59d16d1402d76a298ab7fc5f362e9d3dfd744aa5 |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Added support for objc's gc attribute in ExtQualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b60352aa80d17026f445267940db558ab9cfb92e |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Renamed ASQualType to ExtQualType to reflect its more general use; as for, objc2's gc type attributes. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f11284ac87daa613bc7b30db9f54bd716d123222 |
|
17-Feb-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Renamed ASQualType to ExtQualType to reflect its more general use; as for, objc2's gc type attributes. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ad964b3c41f4fc5fb7e19a0ce28b200e137bab84 |
|
17-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Added ClassTemplateSpecializationDecl, which is a subclass of CXXRecordDecl that is used to represent class template specializations. These are canonical declarations that can refer to either an actual class template specialization in the code, e.g., template<> class vector<bool> { }; or to a template instantiation. However, neither of these features is actually implemented yet, so really we're just using (and uniqing) the declarations to make sure that, e.g., A<int> is a different type from A<float>. Note that we carefully distinguish between what the user wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it represents (e.g., "A<float, int>"); the former is in the sugared Type, the latter is an actual Decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3e00bad490f1bae8a2c60f934e7eb5dbb9752c5d |
|
17-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Added ClassTemplateSpecializationDecl, which is a subclass of CXXRecordDecl that is used to represent class template specializations. These are canonical declarations that can refer to either an actual class template specialization in the code, e.g., template<> class vector<bool> { }; or to a template instantiation. However, neither of these features is actually implemented yet, so really we're just using (and uniqing) the declarations to make sure that, e.g., A<int> is a different type from A<float>. Note that we carefully distinguish between what the user wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it represents (e.g., "A<float, int>"); the former is in the sugared Type, the latter is an actual Decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ff3fcdf47370a4577d971a2adefd259807152078 |
|
13-Feb-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Initial implementation of arbitrary fixed-width integer types. Currently only used for 128-bit integers. Note that we can't use the fixed-width integer types for other integer modes without other changes because glibc headers redefines (u)int*_t and friends using the mode attribute. For example, this means that uint64_t has to be compatible with unsigned __attribute((mode(DI))), and uint64_t is currently defined to long long. And I have a feeling we'll run into issues if we try to define uint64_t as something which isn't either long or long long. This doesn't get the alignment right in most cases, including the 128-bit integer case; I'll file a PR shortly. The gist of the issue is that the targets don't really expose the information necessary to figure out the alignment outside of the target description, so there's a non-trivial amount of work involved in getting it working right. That said, the alignment used is conservative, so the only issue with the current implementation is ABI compatibility. This makes it trivial to add some sort of "bitwidth" attribute to make arbitrary-width integers; I'll do that in a followup. We could also use this for stuff like the following for compatibility with gcc, but I have a feeling it would be a better idea for clang to be consistent between C and C++ modes rather than follow gcc's example for C mode. struct {unsigned long long x : 33;} x; unsigned long long a(void) {return x.x+1;} git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f98aba35e6c3da5aae61843fc01334939e4e12ec |
|
13-Feb-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Initial implementation of arbitrary fixed-width integer types. Currently only used for 128-bit integers. Note that we can't use the fixed-width integer types for other integer modes without other changes because glibc headers redefines (u)int*_t and friends using the mode attribute. For example, this means that uint64_t has to be compatible with unsigned __attribute((mode(DI))), and uint64_t is currently defined to long long. And I have a feeling we'll run into issues if we try to define uint64_t as something which isn't either long or long long. This doesn't get the alignment right in most cases, including the 128-bit integer case; I'll file a PR shortly. The gist of the issue is that the targets don't really expose the information necessary to figure out the alignment outside of the target description, so there's a non-trivial amount of work involved in getting it working right. That said, the alignment used is conservative, so the only issue with the current implementation is ABI compatibility. This makes it trivial to add some sort of "bitwidth" attribute to make arbitrary-width integers; I'll do that in a followup. We could also use this for stuff like the following for compatibility with gcc, but I have a feeling it would be a better idea for clang to be consistent between C and C++ modes rather than follow gcc's example for C mode. struct {unsigned long long x : 33;} x; unsigned long long a(void) {return x.x+1;} git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0ea4e306c61cdf9896f4c943ae44241659bbc0a3 |
|
11-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Reverted r64307. Moved hasSameType and hasSameUnqualifiedType from Sema to ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8e6563ba097732dc1fffcfc85f8dbbceac899a80 |
|
11-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Reverted r64307. Moved hasSameType and hasSameUnqualifiedType from Sema to ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
29b3d302e726e76bf5368bd1261509191ea0bdc4 |
|
11-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Rename Sema::hasSameType to QualType::isSameAs Rename Sema::hasSameUnqualifiedType to QualType::isSameIgnoringQalifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
26a0bdb810681e2514b9ddc2d9779ce6c9a79409 |
|
11-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Rename Sema::hasSameType to QualType::isSameAs Rename Sema::hasSameUnqualifiedType to QualType::isSameIgnoringQalifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e3c19c3cce2d8bdbbb174eff1f887e80b964a18e |
|
11-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
CHAR_BIT == 8 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dedb84afce2cf2e52a6360e200c2c40822022235 |
|
11-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
CHAR_BIT == 8 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2fe2456e91294adb648ba55601b326ec61a908cc |
|
10-Feb-2009 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Bring in 'CHAR_BIT' for GCC 4.3. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4004226773ac4a3070a940199be01ed6bdf1cf23 |
|
10-Feb-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Bring in 'CHAR_BIT' for GCC 4.3. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6f37b58716e89420c13ac067fe605c3b6d5821d0 |
|
09-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Eliminate TemplateArg so that we only have a single kind of representation for template arguments. Also simplifies the interface for ActOnClassTemplateSpecialization and eliminates some annoying allocations of TemplateArgs. My attempt at smart pointers for template arguments lists is relatively lame. We can improve it once we're sure that we have the right representation for template arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5908e9f25bc9a334c99c095e0b1e6a515445be2d |
|
09-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate TemplateArg so that we only have a single kind of representation for template arguments. Also simplifies the interface for ActOnClassTemplateSpecialization and eliminates some annoying allocations of TemplateArgs. My attempt at smart pointers for template arguments lists is relatively lame. We can improve it once we're sure that we have the right representation for template arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8e458f48f07276fe279a3d02e709e7ce15b2f9c3 |
|
09-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Start processing template-ids as types when the template-name refers to a class template. For example, the template-id 'vector<int>' now has a nice, sugary type in the type system. What we can do now: - Parse template-ids like 'vector<int>' (where 'vector' names a class template) and form proper types for them in the type system. - Parse icky template-ids like 'A<5>' and 'A<(5 > 0)>' properly, using (sadly) a bool in the parser to tell it whether '>' should be treated as an operator or not. This is a baby-step, with major problems and limitations: - There are currently two ways that we handle template arguments (whether they are types or expressions). These will be merged, and, most likely, TemplateArg will disappear. - We don't have any notion of the declaration of class template specializations or of template instantiations, so all template-ids are fancy names for 'int' :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
55f6b14230c94272efbbcdd89a92224c8db9f225 |
|
09-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Start processing template-ids as types when the template-name refers to a class template. For example, the template-id 'vector<int>' now has a nice, sugary type in the type system. What we can do now: - Parse template-ids like 'vector<int>' (where 'vector' names a class template) and form proper types for them in the type system. - Parse icky template-ids like 'A<5>' and 'A<(5 > 0)>' properly, using (sadly) a bool in the parser to tell it whether '>' should be treated as an operator or not. This is a baby-step, with major problems and limitations: - There are currently two ways that we handle template arguments (whether they are types or expressions). These will be merged, and, most likely, TemplateArg will disappear. - We don't have any notion of the declaration of class template specializations or of template instantiations, so all template-ids are fancy names for 'int' :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a491877807202cfb1812f6dcdbb7b992c41ca634 |
|
06-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Improve the representation of template type parameters. We now canonicalize by template parameter depth, index, and name, and the unnamed version of a template parameter serves as the canonical. TemplateTypeParmDecl no longer needs to inherit from TemplateParmPosition, since depth and index information is present within the type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fab9d67cebb87be968e7ae31a3b549a5279b5d51 |
|
06-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve the representation of template type parameters. We now canonicalize by template parameter depth, index, and name, and the unnamed version of a template parameter serves as the canonical. TemplateTypeParmDecl no longer needs to inherit from TemplateParmPosition, since depth and index information is present within the type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
279272e63b321f89c8fa0bb198acd3a834459aeb |
|
04-Feb-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Basic representation of C++ class templates, from Andrew Sutton. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aaba5e346dffdbad5d1c42765a89e4a7afb0da67 |
|
04-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Basic representation of C++ class templates, from Andrew Sutton. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e7ef500151147ba851db502fc4d36319f863db80 |
|
30-Jan-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Switch Type::isAggregateType to use the C++ definition of "aggregate type" rather than the C definition. We do this because both C99 and Clang always use "aggregate type" as "aggregate or union type", and the C++ definition includes union types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d7eb846aaf5ee4a8d22c3cd0796d1e7229d46013 |
|
30-Jan-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch Type::isAggregateType to use the C++ definition of "aggregate type" rather than the C definition. We do this because both C99 and Clang always use "aggregate type" as "aggregate or union type", and the C++ definition includes union types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7555503bb5f08651638f269c44c15bb425d10c5e |
|
24-Jan-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add support for declaring pointers to members. Add serialization support for ReferenceType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f30208ad5b334e93582e846a2a0c92f38a607b8a |
|
24-Jan-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add support for declaring pointers to members. Add serialization support for ReferenceType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c70e7d095b3944cb38f2e522c352e9f6a46faff3 |
|
19-Jan-2009 |
Ted Kremenek <kremenek@apple.com> |
Allocate Types using ASTContext's 'Allocator' object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
566c2ba743065ec090f5154d5c30cf593aa12a6e |
|
19-Jan-2009 |
Ted Kremenek <kremenek@apple.com> |
Allocate Types using ASTContext's 'Allocator' object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f1791b0a471cd61641eca7f4c0815cdce2f105ea |
|
18-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
Eliminate tabs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b4218f48fef71a179c5a8287dae281580faf52f |
|
18-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
Eliminate tabs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1486b507eb8b13d3cc77b42a32395a811c5c962e |
|
18-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
Update support for vector component access on ExtVectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
353417af9d254d4fd0eb7d0a3ff71c4d8594ac58 |
|
18-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
Update support for vector component access on ExtVectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
98b275417eab0af35ba0bf0d7dbd89253c710f3c |
|
17-Jan-2009 |
Douglas Gregor <doug.gregor@gmail.com> |
Teach DeclContext how to find the primary declaration for any TagDecl even when we are still defining the TagDecl. This is required so that qualified name lookup of a class name within its definition works (see the new bits in test/SemaCXX/qualified-id-lookup.cpp). As part of this, move the nested redefinition checking code into ActOnTag. This gives us diagnostics earlier (when we try to perform the nested redefinition, rather than when we try to complete the 2nd definition) and removes some code duplication. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0b7a158d120ac8d78c114a823e17eedfec6b6658 |
|
17-Jan-2009 |
Douglas Gregor <dgregor@apple.com> |
Teach DeclContext how to find the primary declaration for any TagDecl even when we are still defining the TagDecl. This is required so that qualified name lookup of a class name within its definition works (see the new bits in test/SemaCXX/qualified-id-lookup.cpp). As part of this, move the nested redefinition checking code into ActOnTag. This gives us diagnostics earlier (when we try to perform the nested redefinition, rather than when we try to complete the 2nd definition) and removes some code duplication. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
39c0f6f69727c07a1b87605c54f14b86f8189194 |
|
05-Jan-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
PODness and Type Traits Make C++ classes track the POD property (C++ [class]p4) Track the existence of a copy assignment operator. Implicitly declare the copy assignment operator if none is provided. Implement most of the parsing job for the G++ type traits extension. Fully implement the low-hanging fruit of the type traits: __is_pod: Whether a type is a POD. __is_class: Whether a type is a (non-union) class. __is_union: Whether a type is a union. __is_enum: Whether a type is an enum. __is_polymorphic: Whether a type is polymorphic (C++ [class.virtual]p1). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
64b45f7e0d3167f040841ac2920aead7f080730d |
|
05-Jan-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
PODness and Type Traits Make C++ classes track the POD property (C++ [class]p4) Track the existence of a copy assignment operator. Implicitly declare the copy assignment operator if none is provided. Implement most of the parsing job for the G++ type traits extension. Fully implement the low-hanging fruit of the type traits: __is_pod: Whether a type is a POD. __is_class: Whether a type is a (non-union) class. __is_union: Whether a type is a union. __is_enum: Whether a type is an enum. __is_polymorphic: Whether a type is polymorphic (C++ [class.virtual]p1). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0da0273153e4526863ce8d1e06f94c8957bd4341 |
|
24-Dec-2008 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add serialization support for TypeOfType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
501c7252bd4752bc542630446494eb15b27f1f88 |
|
24-Dec-2008 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add serialization support for TypeOfType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71af02f1cea2bcedacbff2a20d883bf2b8042eb0 |
|
24-Dec-2008 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add serialization support for TypeOfExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8fbc5274c416967de5338778f685b7830464ad13 |
|
24-Dec-2008 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add serialization support for TypeOfExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b9b218e566459808be9f1c52b03afad3e0d39ed3 |
|
23-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Add a setter for CVR qualifiers, patch by Lukasz Janyst! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a3ab4b85f54090927c2dfa2585b9f0e48509e944 |
|
23-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Add a setter for CVR qualifiers, patch by Lukasz Janyst! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0dd0e37f7f54bc710c7f656e28ca4ab63ff9284c |
|
21-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Did not mean to commit this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
97e0179f1ae545e07d9f5e7c1d2ef5c5bab06676 |
|
21-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Did not mean to commit this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3bb57e845cf801eec463777d796d1a3d0d75e266 |
|
21-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Handle VLA indexing git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8b33c087fc6d97064b6620c96c732ebc5c003fb2 |
|
21-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Handle VLA indexing git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1b21c7ffe5fac1711fea35e4830159004a835c1a |
|
06-Dec-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce basic support for dependent types, type-dependent expressions, and value-dependent expressions. This permits us to parse some template definitions. This is not a complete solution; we're missing type- and value-dependent computations for most of the expression types, and we're missing checks for dependent types and type-dependent expressions throughout Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
898574e7496ba8fd76290079d3a9d06954992734 |
|
06-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Introduce basic support for dependent types, type-dependent expressions, and value-dependent expressions. This permits us to parse some template definitions. This is not a complete solution; we're missing type- and value-dependent computations for most of the expression types, and we're missing checks for dependent types and type-dependent expressions throughout Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dd861060e2e1f1e41f7b023d025fcd8eb183686d |
|
05-Dec-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Representation of template type parameters and non-type template parameters, with some semantic analysis: - Template parameters are introduced into template parameter scope - Complain about template parameter shadowing (except in Microsoft mode) Note that we leak template parameter declarations like crazy, a problem we'll remedy once we actually create proper declarations for templates. Next up: dependent types and value-dependent/type-dependent expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
72c3f314d92d65c050ee1c07b7753623c044d6c7 |
|
05-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Representation of template type parameters and non-type template parameters, with some semantic analysis: - Template parameters are introduced into template parameter scope - Complain about template parameter shadowing (except in Microsoft mode) Note that we leak template parameter declarations like crazy, a problem we'll remedy once we actually create proper declarations for templates. Next up: dependent types and value-dependent/type-dependent expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
48a3432a72fd17868c0bf4d864ddb60420c63d68 |
|
29-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Switch QualType to use llvm::PointerIntPair internally to do the pointer bitmangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5cf243a883872441d73ca49cea7e20de5802629b |
|
29-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Switch QualType to use llvm::PointerIntPair internally to do the pointer bitmangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
254de7dd490d1163d6dad4302f5d8b7f9ae3dc30 |
|
23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
add support for inserting a DeclarationName into a diagnostic directly without calling getAsString(). This implicitly puts quotes around the name, so diagnostics need to be tweaked to accommodate this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
011bb4edf731d529da1cbf71c7c2696aaf5a054f |
|
23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
add support for inserting a DeclarationName into a diagnostic directly without calling getAsString(). This implicitly puts quotes around the name, so diagnostics need to be tweaked to accommodate this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
da5c087ebf3d47b40bae2e99671ce1929156a427 |
|
23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for sending QualType's directly into diags and convert two diags over to use this. QualTypes implicitly print single quotes around them for uniformity and future extension. Doing this requires a little function pointer dance to prevent libbasic from depending on libast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
22caddc91d2f6186739c6b20ec58ed38cd68e595 |
|
23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for sending QualType's directly into diags and convert two diags over to use this. QualTypes implicitly print single quotes around them for uniformity and future extension. Doing this requires a little function pointer dance to prevent libbasic from depending on libast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
45014fd2d7e50079dc092df04fec9af7ea0cb0e0 |
|
10-Nov-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Basic support for taking the address of an overloaded function git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
904eed3f6148758d39a2d3c88f3133274460d645 |
|
10-Nov-2008 |
Douglas Gregor <dgregor@apple.com> |
Basic support for taking the address of an overloaded function git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b269b4f8fe1509a5d9a92bc02b1b8b503fcd2fd |
|
24-Oct-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
-Add support for cv-qualifiers after function declarators. -Add withConst/withVolatile/withRestrict methods to QualType class, that return the QualType plus the respective qualifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
971c4fae6092976338b755af1d47dac07c8f16e3 |
|
24-Oct-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
-Add support for cv-qualifiers after function declarators. -Add withConst/withVolatile/withRestrict methods to QualType class, that return the QualType plus the respective qualifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5424cecfd5c51a88d721b3587a7fa3981ec1c34b |
|
24-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Move viewInheritance to CXXRecordDecl, and make sure it builds in Release mode, too git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1f81230ac57b9bda8bba9c8221652842ca786132 |
|
24-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Move viewInheritance to CXXRecordDecl, and make sure it builds in Release mode, too git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0590402476a996b3c2081fd197b0e2055e387c23 |
|
22-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Added GraphViz visualization of C++ inheritance hierarchies. Factored the QualTypeOrdering predicate into its own header (TypeOrdering.h), now that it is used in two places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0218936235b137bbdcd29a6c36d61d9215bb4edd |
|
22-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Added GraphViz visualization of C++ inheritance hierarchies. Factored the QualTypeOrdering predicate into its own header (TypeOrdering.h), now that it is used in two places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4459bbe1ad110c100d74af8c74fdc82d87317dfe |
|
22-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
QualType::isMoreQualifiedThan and isAtLeastAsQualifiedAs assert that we aren't trying to compare with address-space qualifiers (for now). Clean up handing of DeclRefExprs in Expr::isLvalue and refactor part of the check into a static DeclCanBeLvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ba7e210a999275695f58be03ef402758cfec3635 |
|
22-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
QualType::isMoreQualifiedThan and isAtLeastAsQualifiedAs assert that we aren't trying to compare with address-space qualifiers (for now). Clean up handing of DeclRefExprs in Expr::isLvalue and refactor part of the check into a static DeclCanBeLvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3fb675ab045253ffe2f1b333e9f8e746b50abeb4 |
|
22-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Move Sema::GetNonReferenceType to QualType::getNonReferenceType and make it inline git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e0a5d5fe8eab573f7764bf6d2ddb02bee8dceaf9 |
|
22-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Move Sema::GetNonReferenceType to QualType::getNonReferenceType and make it inline git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e5db4f7d7b6dc33259ee0248d73dd3794cd0a841 |
|
22-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Fix a thinko in the qualification-conversion check when the qualificaitons are disjoint, and add some overloading-based tests of qualification conversions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9b6e2d209cc2931a9bb2ae51e744a8698b54db73 |
|
22-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Fix a thinko in the qualification-conversion check when the qualificaitons are disjoint, and add some overloading-based tests of qualification conversions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6573cfd6fc32eab0b696cfc318bb21f4e3933f35 |
|
22-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Initial step toward supporting qualification conversions (C++ 4.4). Changes: - Sema::IsQualificationConversion determines whether we have a qualification conversion. - Sema::CheckSingleAssignment constraints now follows the C++ rules in C++, performing an implicit conversion from the right-hand side to the type of the left-hand side rather than checking based on the C notion of "compatibility". We now rely on the implicit-conversion code to determine whether the conversion can happen or not. Sema::TryCopyInitialization has an ugly reference-related hack to cope with the initialization of references, for now. - When building DeclRefExprs, strip away the reference type, since there are no expressions whose type is a reference. We'll need to do this throughout Sema. - Expr::isLvalue now permits functions to be lvalues in C++ (but not in C). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
98cd599ee8a9b259ed7388ee2921a20d97658864 |
|
22-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Initial step toward supporting qualification conversions (C++ 4.4). Changes: - Sema::IsQualificationConversion determines whether we have a qualification conversion. - Sema::CheckSingleAssignment constraints now follows the C++ rules in C++, performing an implicit conversion from the right-hand side to the type of the left-hand side rather than checking based on the C notion of "compatibility". We now rely on the implicit-conversion code to determine whether the conversion can happen or not. Sema::TryCopyInitialization has an ugly reference-related hack to cope with the initialization of references, for now. - When building DeclRefExprs, strip away the reference type, since there are no expressions whose type is a reference. We'll need to do this throughout Sema. - Expr::isLvalue now permits functions to be lvalues in C++ (but not in C). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d2baafd07bc5c7679a6f1f10e5587a95842ffa15 |
|
21-Oct-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Preliminary support for function overloading git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8e9bebdea69c590dedfbf27374114cb76fe12fbd |
|
21-Oct-2008 |
Douglas Gregor <dgregor@apple.com> |
Preliminary support for function overloading git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3cbc064cf343c2151488b7822430ed327ade176e |
|
19-Oct-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Change a couple of cast<> to reinterpret_cast<>. The casts<> require that "Decl.h" is included before "Type.h", use reinterpret_cast<> to remove that kind of dependency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
509447e7cb9c24a9f2bd149fe95030050b088622 |
|
19-Oct-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Change a couple of cast<> to reinterpret_cast<>. The casts<> require that "Decl.h" is included before "Type.h", use reinterpret_cast<> to remove that kind of dependency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9c7fd1e1ad0ec0c483560c9a9daeda23c3772055 |
|
14-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move Type::EmitImpl into header, add FIXME to make abstract. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
708ef456a182030de3cf20ad98e653d2741ecb13 |
|
14-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move Type::EmitImpl into header, add FIXME to make abstract. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aeaf7eff830282cdf1e57b4eeb28833d57c9d4ed |
|
03-Oct-2008 |
Steve Naroff <snaroff@apple.com> |
- Add a convenience constructor to Type. - Many rewriter modifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
83ba14e260193a67bba3772134d1d428a1b1c394 |
|
03-Oct-2008 |
Steve Naroff <snaroff@apple.com> |
- Add a convenience constructor to Type. - Many rewriter modifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1815b3bfc1382c88bee771bd158755b2426f0780 |
|
12-Sep-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Give string literals const element typesin C++, and cope with the deprecated C++ conversion from a string literal to a pointer-to-non-const-character git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
77a52233f7c0f162672652051bfe78b65ad4f789 |
|
12-Sep-2008 |
Douglas Gregor <dgregor@apple.com> |
Give string literals const element typesin C++, and cope with the deprecated C++ conversion from a string literal to a pointer-to-non-const-character git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
46a837c7ced306c55d1686cea5f77cb7a2f3b908 |
|
05-Sep-2008 |
Ted Kremenek <kremenek@apple.com> |
Change struct forward declarations and definitions to use unique RecordDecls, as opposed to creating a single RecordDecl and reusing it. This change effects both RecordDecls and CXXRecordDecls, but does not effect EnumDecls (yet). The motivation of this patch is as follows: - Capture more source information, necessary for refactoring/rewriting clients. - Pave the way to resolve ownership issues with RecordDecls with the forthcoming addition of DeclGroups. Current caveats: - Until DeclGroups are in place, we will leak RecordDecls not explicitly referenced by the AST. For example: typedef struct { ... } x; The RecordDecl for the struct will be leaked because the TypedefDecl doesn't refer to it. This will be solved with DeclGroups. - This patch also (temporarily) breaks CodeGen. More below. High-level changes: - As before, TagType still refers to a TagDecl, but it doesn't own it. When a struct/union/class is first referenced, a RecordType and RecordDecl are created for it, and the RecordType refers to that RecordDecl. Later, if a new RecordDecl is created, the pointer to a RecordDecl in RecordType is updated to point to the RecordDecl that defines the struct/union/class. - TagDecl and RecordDecl now how a method 'getDefinition()' to return the TagDecl*/RecordDecl* that refers to the TagDecl* that defines a particular enum/struct/class/union. This is useful from going from a RecordDecl* that defines a forward declaration to the RecordDecl* that provides the actual definition. Note that this also works for EnumDecls, except that in this case there is no distinction between forward declarations and definitions (yet). - Clients should no longer assume that 'isDefinition()' returns true from a RecordDecl if the corresponding struct/union/class has been defined. isDefinition() only returns true if a particular RecordDecl is the defining Decl. Use 'getDefinition()' instead to determine if a struct has been defined. - The main changes to Sema happen in ActOnTag. To make the changes more incremental, I split off the processing of enums and structs et al into two code paths. Enums use the original code path (which is in ActOnTag) and structs use the ActOnTagStruct. Eventually the two code paths will be merged, but the idea was to preserve the original logic both for comparison and not to change the logic for both enums and structs all at once. - There is NO CHAINING of RecordDecls for the same RecordType. All RecordDecls that correspond to the same type simply have a pointer to that type. If we need to figure out what are all the RecordDecls for a given type we can build a backmap. - The diff in CXXRecordDecl.[cpp,h] is actually very small; it just mimics the changes to RecordDecl. For some reason 'svn' marks the entire file as changed. Why is CodeGen broken: - Codegen assumes that there is an equivalence between RecordDecl* and RecordType*. This was true before because we only created one RecordDecl* for a given RecordType*, but it is no longer true. I believe this shouldn't be too hard to change, but the patch was big enough as it is. I have tested this patch on both the clang test suite, and by running the static analyzer over Postgresql and a large Apple-internal project (mix of Objective-C and C). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b7c98378ae0c1a3635f0b7756848b4a9923f8bc |
|
05-Sep-2008 |
Ted Kremenek <kremenek@apple.com> |
Change struct forward declarations and definitions to use unique RecordDecls, as opposed to creating a single RecordDecl and reusing it. This change effects both RecordDecls and CXXRecordDecls, but does not effect EnumDecls (yet). The motivation of this patch is as follows: - Capture more source information, necessary for refactoring/rewriting clients. - Pave the way to resolve ownership issues with RecordDecls with the forthcoming addition of DeclGroups. Current caveats: - Until DeclGroups are in place, we will leak RecordDecls not explicitly referenced by the AST. For example: typedef struct { ... } x; The RecordDecl for the struct will be leaked because the TypedefDecl doesn't refer to it. This will be solved with DeclGroups. - This patch also (temporarily) breaks CodeGen. More below. High-level changes: - As before, TagType still refers to a TagDecl, but it doesn't own it. When a struct/union/class is first referenced, a RecordType and RecordDecl are created for it, and the RecordType refers to that RecordDecl. Later, if a new RecordDecl is created, the pointer to a RecordDecl in RecordType is updated to point to the RecordDecl that defines the struct/union/class. - TagDecl and RecordDecl now how a method 'getDefinition()' to return the TagDecl*/RecordDecl* that refers to the TagDecl* that defines a particular enum/struct/class/union. This is useful from going from a RecordDecl* that defines a forward declaration to the RecordDecl* that provides the actual definition. Note that this also works for EnumDecls, except that in this case there is no distinction between forward declarations and definitions (yet). - Clients should no longer assume that 'isDefinition()' returns true from a RecordDecl if the corresponding struct/union/class has been defined. isDefinition() only returns true if a particular RecordDecl is the defining Decl. Use 'getDefinition()' instead to determine if a struct has been defined. - The main changes to Sema happen in ActOnTag. To make the changes more incremental, I split off the processing of enums and structs et al into two code paths. Enums use the original code path (which is in ActOnTag) and structs use the ActOnTagStruct. Eventually the two code paths will be merged, but the idea was to preserve the original logic both for comparison and not to change the logic for both enums and structs all at once. - There is NO CHAINING of RecordDecls for the same RecordType. All RecordDecls that correspond to the same type simply have a pointer to that type. If we need to figure out what are all the RecordDecls for a given type we can build a backmap. - The diff in CXXRecordDecl.[cpp,h] is actually very small; it just mimics the changes to RecordDecl. For some reason 'svn' marks the entire file as changed. Why is CodeGen broken: - Codegen assumes that there is an equivalence between RecordDecl* and RecordType*. This was true before because we only created one RecordDecl* for a given RecordType*, but it is no longer true. I believe this shouldn't be too hard to change, but the patch was big enough as it is. I have tested this patch on both the clang test suite, and by running the static analyzer over Postgresql and a large Apple-internal project (mix of Objective-C and C). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4fea7b688be1fd4fd3fd34ed70127c78904eaa91 |
|
04-Sep-2008 |
Steve Naroff <snaroff@apple.com> |
Touchup CheckSingleAssignmentConstraints() and CheckCompareOperands() to check for block pointers. Added a couple FIXME's wrt PointLikeType. If the author reads this, it would be great to get some background on this class (thanks in advance). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
39218dfef550ad1cd7b7ece83a715996a113ffd1 |
|
04-Sep-2008 |
Steve Naroff <snaroff@apple.com> |
Touchup CheckSingleAssignmentConstraints() and CheckCompareOperands() to check for block pointers. Added a couple FIXME's wrt PointLikeType. If the author reads this, it would be great to get some background on this class (thanks in advance). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a7bbf567dac9dfd58f12c9ff14584d64104694f3 |
|
01-Sep-2008 |
Nuno Lopes <nunoplopes@sapo.pt> |
codegen constant data as such. add QualType::isConstant() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b381aac9bae6d608c72267dd0ed08ec6369e94e4 |
|
01-Sep-2008 |
Nuno Lopes <nunoplopes@sapo.pt> |
codegen constant data as such. add QualType::isConstant() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7aa5475ca2f62df5ba3f3b647ee141a40bf48fd3 |
|
27-Aug-2008 |
Steve Naroff <snaroff@apple.com> |
First wave of changes to support "blocks" (an extension to C). This commit adds the declaration syntax (and associated type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5618bd4a52c45fbbb605e3ba885663b2164db8a3 |
|
27-Aug-2008 |
Steve Naroff <snaroff@apple.com> |
First wave of changes to support "blocks" (an extension to C). This commit adds the declaration syntax (and associated type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
36104c1a2a18f1f78eba031e3a7a76d40416c4a7 |
|
22-Aug-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Minor const cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
86da77fdaf4c0237eafb9670f54eee20b08635bf |
|
22-Aug-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Minor const cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
85bd81edce4057156d7f49408147f07daa675096 |
|
17-Aug-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Type::isIntegerType() returns true for types between Bool and LongLong. Put WChar between them to make it integer type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ff9b4c7c8fed9233a0b8de2e9507368c451aab6 |
|
17-Aug-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Type::isIntegerType() returns true for types between Bool and LongLong. Put WChar between them to make it integer type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1ed03e75c3a03edea7234a3021f76e808d283f2f |
|
09-Aug-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Implement support for the 'wchar_t' C++ type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
64c438a4be2a871fa43c78264663ba1e9788b94d |
|
09-Aug-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement support for the 'wchar_t' C++ type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ea29d1ec6b76c3722d7c0fb6a3d35c2d8cc74a79 |
|
07-Aug-2008 |
Argiris Kirtzidis <akyrtzi@gmail.com> |
Add CXXRecordType class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
49aa7ff1245abd03e6e998e01302df31e4c6f8f6 |
|
07-Aug-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add CXXRecordType class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a1923f6d95601582f4a5c3924b8e1c5ac3f658b3 |
|
04-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Finally fix PR2189. This makes a fairly invasive but important change to move getAsArrayType into ASTContext instead of being a method on type. This is required because getAsArrayType(const AT), where AT is a typedef for "int[10]" needs to return ArrayType(const int, 10). Fixing this greatly simplifies getArrayDecayedType, which is a good sign. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c63a1f276f7b324fd9a4be82098b1c8f7bf30733 |
|
04-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Finally fix PR2189. This makes a fairly invasive but important change to move getAsArrayType into ASTContext instead of being a method on type. This is required because getAsArrayType(const AT), where AT is a typedef for "int[10]" needs to return ArrayType(const int, 10). Fixing this greatly simplifies getArrayDecayedType, which is a good sign. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
809da269fb57f4cee4dd9fd786b22fb9961f89c7 |
|
27-Jul-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix serialization for TypedefType by allowing TypedefType to access the internal CanonicalType stored in Type. The test case Serialization/stmt_exprs.c now passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d90700108cfb45f2dda6c5a7adc11ce5ac68aa0d |
|
27-Jul-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix serialization for TypedefType by allowing TypedefType to access the internal CanonicalType stored in Type. The test case Serialization/stmt_exprs.c now passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a55e321bd645398b514e246981c04a4889ee2472 |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
make "call foo.dump()" and "call foo->dump()" work in GDB, with QualTypes and Types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c36d405a02fab41f6c45cb2bc750d64949742903 |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
make "call foo.dump()" and "call foo->dump()" work in GDB, with QualTypes and Types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
01ee73fb7b2734d3ca1c5876dc623811518985df |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
remove QualType::getCanonicalType. Also make QualType::ReadBackpatch public so that FieldDecl doesn't need to be a friend of QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4243a94b43ef6207938f3023dfcfb804dd545363 |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
remove QualType::getCanonicalType. Also make QualType::ReadBackpatch public so that FieldDecl doesn't need to be a friend of QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d5a56aae166344e13f1f8c845530beee0868db49 |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
change more instances of QualType::getCanonicalType to call ASTContext::getCanonicalType instead (PR2189) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b77792eabf5882cf9af8cc810599b20432fda6c2 |
|
27-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
change more instances of QualType::getCanonicalType to call ASTContext::getCanonicalType instead (PR2189) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4a68fe04deb7ab89ac7566dc55b3b623129c72e5 |
|
26-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
fix several problems with the protocol qualified id handling where id was implicit. First, fix canonical type handling of these, since protocol qualified id's are always canonical. Next, enhance SemaType to actually make these when used (instead of int) allowing them to actually be used when appropriate. Finally remove a bunch of logic relating to the mishandling of canonical types with protocol-qual id's. This fixes rdar://5986251 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
62f5f7ffad57e0c2af2b308af3735351505937cb |
|
26-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
fix several problems with the protocol qualified id handling where id was implicit. First, fix canonical type handling of these, since protocol qualified id's are always canonical. Next, enhance SemaType to actually make these when used (instead of int) allowing them to actually be used when appropriate. Finally remove a bunch of logic relating to the mishandling of canonical types with protocol-qual id's. This fixes rdar://5986251 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f914765ba1d70f599fa69bde38b8646c02d9b1aa |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
continue cleaning up code, and disable sending a message directly to an interface. This fixes a bug where we used to accept: void test2(NSNumber x) { [x METH]; } which doesn't make sense and GCC rejects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2b1cc8be4dda4cd122485be0168b3c43d7dff15f |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
continue cleaning up code, and disable sending a message directly to an interface. This fixes a bug where we used to accept: void test2(NSNumber x) { [x METH]; } which doesn't make sense and GCC rejects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d5f8179ed2b75e5c21109f3dd996836b5f743ecd |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
rename getProtocols -> getProtocol, as it only returns a single protocol. Simplify some code to use unconditional form of the protocol access list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9baefc21bfe1bf49ab4a234e9f267f00abe0b1b1 |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
rename getProtocols -> getProtocol, as it only returns a single protocol. Simplify some code to use unconditional form of the protocol access list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f81d921ec2f5bac3f35a94392fe2b764473884ee |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
improve documentation of ObjCInterfaceType significantly. Also, make the qual_* iterators and getNumProtocols() lists be accessible through ObjCInterfaceType (returning an empty range if not a ObjCQualifiedInterfaceType). This eliminates special checks in clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fb7701df5401fa1f5b3396d269fb33e731a00089 |
|
21-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
improve documentation of ObjCInterfaceType significantly. Also, make the qual_* iterators and getNumProtocols() lists be accessible through ObjCInterfaceType (returning an empty range if not a ObjCQualifiedInterfaceType). This eliminates special checks in clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0832dbca0e11ee020bbed181c515b3835158436e |
|
28-Jun-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR2501; this patch makes usual arithmetic conversions for integers which have the same width and different signedness work correctly. (The testcase in PR2501 uses a comparison between long and unsigned int). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ad74a758189180b8ab8faea648e4766c3bfd7fcb |
|
28-Jun-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR2501; this patch makes usual arithmetic conversions for integers which have the same width and different signedness work correctly. (The testcase in PR2501 uses a comparison between long and unsigned int). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9d464449c2a782e0a91ea85d79ad9e35418ec441 |
|
25-Jun-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Profile method to QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3f2dcb1ca8bd2d5d3ccc5c80f4ab06f949d88a89 |
|
25-Jun-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Profile method to QualType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
718b6638e0d259d1b8371ef30e475e9c2e981ffc |
|
30-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix some strict-aliasing warnings by using Stmt* instead of Expr* in VariableArrayType, EnumConstantDecl, and VarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b3064041583eb134fbf56906728bf752bc65b572 |
|
30-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Fix some strict-aliasing warnings by using Stmt* instead of Expr* in VariableArrayType, EnumConstantDecl, and VarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
93eb82549eec82d75ce5dd3afbeeaf6fdb0e2a27 |
|
25-May-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Generate subprogram debug info with -g. Also take care of freeing memory at the right places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1c6a38bcea17801e9a4738753aee845381af2b6c |
|
25-May-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Generate subprogram debug info with -g. Also take care of freeing memory at the right places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
db4d5970d9243fb699f250f74eab6b7cce901a40 |
|
21-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Destroy method to Types, making there destruction more harmonious with the destruction of Decls and Stmts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b05b1dee6cc65ae61d93dab7edff72710f24589 |
|
21-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Destroy method to Types, making there destruction more harmonious with the destruction of Decls and Stmts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5c45be48e6125c5981ad48708dc7e8267bace63a |
|
12-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Type::getAsTypedefType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
769c9cfc6e06bd9d8ffe7a4397b939f19b0e4dc3 |
|
12-May-2008 |
Ted Kremenek <kremenek@apple.com> |
Add Type::getAsTypedefType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
56846f2ed2594f49d78eee3645482a5e77d5e236 |
|
04-May-2008 |
Chris Lattner <sabre@nondot.org> |
improve array type comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
da2d71a50fe724c881b148fcc2c05a5e9b56e3a5 |
|
04-May-2008 |
Chris Lattner <sabre@nondot.org> |
improve array type comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
af6ed504d90dc3b813c573bfbee8bc0e92e7fdc0 |
|
19-Apr-2008 |
Nate Begeman <natebegeman@mac.com> |
OCUVector -> ExtVector, shorthand for extended vector, per feedback from Chris. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
213541a68a3e137d11d2cefb612c6cdb410d7e8e |
|
19-Apr-2008 |
Nate Begeman <natebegeman@mac.com> |
OCUVector -> ExtVector, shorthand for extended vector, per feedback from Chris. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1d661556b9263f4d635372aecdea8c55dac84e83 |
|
13-Apr-2008 |
Douglas Gregor <doug.gregor@gmail.com> |
Introduce support for finding class and enum names via ordinary name lookup in C++ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ce52f3fb95bf544db6bd3d91a72bce7d9cceb6c |
|
13-Apr-2008 |
Douglas Gregor <dgregor@apple.com> |
Introduce support for finding class and enum names via ordinary name lookup in C++ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2e78db3510b136b3f961af202e6a1a3df4839172 |
|
13-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
This patch is just the easy part of the class names patch, which allows the parsing of "class" in addition to "struct" and "union" to declare a record. So this patch allows: class C { }; class C c1; But it does not contain the lookup bits, so this won't work yet: C c2; Patch by Doug Gregor! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
99dc91422144483c20d1c7381bc9ac634b646b04 |
|
13-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
This patch is just the easy part of the class names patch, which allows the parsing of "class" in addition to "struct" and "union" to declare a record. So this patch allows: class C { }; class C c1; But it does not contain the lookup bits, so this won't work yet: C c2; Patch by Doug Gregor! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fd5690fe6b5ea1c553dfe20f99d3fef269a50bd1 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a really bad bug where type uniquing would merge a<x> with b<x> as the same type, because it did not include a/b in the hash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1ee0700c7dbe3554df09b4558e0b35a53d487ff2 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a really bad bug where type uniquing would merge a<x> with b<x> as the same type, because it did not include a/b in the hash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e86716008551d268871e9aa7b27ea1b64b462991 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
improve comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
372bed091b6b1eca596130208e227e7077154de4 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
improve comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b0c6a1fcc5d43696387d2870cc4722581f6db671 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
eliminate getReferencedProtocols from ObjCQualifiedIdType/ObjCQualifiedInterfaceType, adding an interator interface instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
065f0d7b00c3cd2b3139ebd105f50462fc778859 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
eliminate getReferencedProtocols from ObjCQualifiedIdType/ObjCQualifiedInterfaceType, adding an interator interface instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b06cf30badcddfea862bc9a538447453bdd94598 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
clean up some logic in objc type handling. Specifically, make it so that there are QualType::getAsObjc* type methods, and make isa<ObjCInterfaceType> return true for ObjCQualifiedInterfaceType's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
368eefa081d12f0a265ee90ee8ec61b54168d57d |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
clean up some logic in objc type handling. Specifically, make it so that there are QualType::getAsObjc* type methods, and make isa<ObjCInterfaceType> return true for ObjCQualifiedInterfaceType's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
eae0eaa09f163aa27d2eb0244ed2d3ebed8eed6f |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Make EnumType/RecordType classof predicates simpler and more efficient in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2daa5df1b53f7ef745d724771384409f6f5df5c1 |
|
07-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Make EnumType/RecordType classof predicates simpler and more efficient in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1baaf13ea33c7b60742bf772bca8df2ccc1a51a8 |
|
06-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add a helper EnumType object for asking about tagtypes for enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5edb8bfe8472e7d7bf6a82386394ef27359eb846 |
|
06-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add a helper EnumType object for asking about tagtypes for enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3277df47de6b65b55721726dc3f7b294e70ef6fe |
|
04-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add an isAnyComplexType() method, which returns true for both integer and FP complexes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f23d364084d1aabea688222780d6fc1dd8c7f78c |
|
04-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add an isAnyComplexType() method, which returns true for both integer and FP complexes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
cfac88de7de7d970a2436af939ea87c0e5a9cf9f |
|
02-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add a common base class "PointerLikeType" for PointerType and ReferenceType, allowing them to be treated the same in some contexts. A suggestion for a better name is welcome :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bdcd637c29ec1540f912ea6860c88b910e78c329 |
|
02-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add a common base class "PointerLikeType" for PointerType and ReferenceType, allowing them to be treated the same in some contexts. A suggestion for a better name is welcome :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9db553e9ffdcd7c9fbd2fa6cf70646370e589159 |
|
02-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Various parts of the standard require something to be an "incomplete or object type". Add a predicate that checks exactly this, as it is equivalent to checking ot see if the type is *not* a function type, which is faster to check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d805bec0fbb98aa10abbb41bfdcb2e2fab1bac96 |
|
02-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Various parts of the standard require something to be an "incomplete or object type". Add a predicate that checks exactly this, as it is equivalent to checking ot see if the type is *not* a function type, which is faster to check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
efc11216a5755f69b5540289aa2dd374d4bc82ab |
|
25-Mar-2008 |
Nate Begeman <natebegeman@mac.com> |
Extend QualType::getAddressSpace to do the right thing for array types, and in the future, RecordTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8e7dafec4b70303dfaff95151cd06bfc5532720c |
|
25-Mar-2008 |
Nate Begeman <natebegeman@mac.com> |
Extend QualType::getAddressSpace to do the right thing for array types, and in the future, RecordTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dbd96b23eae3784172d91cfb086abb8ca732f92e |
|
24-Feb-2008 |
Ted Kremenek <kremenek@apple.com> |
Two more Windows-related fixes: - More enum signeness bitfield fixes (MSVC treats enums as signed). - Fixed in Lex/HeaderSearch.cpp an unsafe copy between two HeaderSearch::PerFileInfo entries in a common vector. The copy involved two calls to getFileInfo() within the assignment; these calls could have side-effects that enlarged the internal vector, and with MSVC this would invalidate one of the values in the assignment. Patch by Argiris Kirtzidis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ca63fa00786e51c207c829f4182f11a6c6b552be |
|
24-Feb-2008 |
Ted Kremenek <kremenek@apple.com> |
Two more Windows-related fixes: - More enum signeness bitfield fixes (MSVC treats enums as signed). - Fixed in Lex/HeaderSearch.cpp an unsafe copy between two HeaderSearch::PerFileInfo entries in a common vector. The copy involved two calls to getFileInfo() within the assignment; these calls could have side-effects that enlarged the internal vector, and with MSVC this would invalidate one of the values in the assignment. Patch by Argiris Kirtzidis! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
35fef52886c88e3855745917fcb0bf6a19fa0ba1 |
|
20-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Alternate address spaces work: rename QualType::getQualifiers to getCVRQualifiers. Add some fixme's and clean up some code relevant to qualifiers. Change ASQualType to contain a Type* instead of a QualType. Any CVR qualifiers should be on the outer qual type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f46699ce225811d8d9dbab9d00189a0e54469457 |
|
20-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Alternate address spaces work: rename QualType::getQualifiers to getCVRQualifiers. Add some fixme's and clean up some code relevant to qualifiers. Change ASQualType to contain a Type* instead of a QualType. Any CVR qualifiers should be on the outer qual type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8ff077864feed2c2b75424d37724f60e56d5a597 |
|
15-Feb-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Split out incomplete arrays from VariableArrayType into IncompleteArrayType. This should make code dealing with both incomplete and variable length arrays much more readable, plus it allows properly making the distinction between isVariableArrayType() and isVariablyModifiedType(). The patch is a little big, but it's strightforward. so I don't think there should be any issues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c5773c4b8ce1ed6ed5c7112c9020c954a47dce96 |
|
15-Feb-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Split out incomplete arrays from VariableArrayType into IncompleteArrayType. This should make code dealing with both incomplete and variable length arrays much more readable, plus it allows properly making the distinction between isVariableArrayType() and isVariablyModifiedType(). The patch is a little big, but it's strightforward. so I don't think there should be any issues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
62f67fd7f670f1a8b222c6565b257c05e8e80fae |
|
15-Feb-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Remove useless parameter from isConstantSizeType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3c2b3170041f69a92904e3bab9b6d654eaf260ac |
|
15-Feb-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Remove useless parameter from isConstantSizeType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2a72bb32dfda134cb2bab50f5bb4a6b214f84348 |
|
04-Feb-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add experimental support for address space qualified types. Address space qualifiers use the __attribute__((address_space(id))) syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ebb97e98c03f8d7034bd3748a10e35f39a95c289 |
|
04-Feb-2008 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add experimental support for address space qualified types. Address space qualifiers use the __attribute__((address_space(id))) syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
771d8f421cc12a168e92a45f7f0be713ebda5b11 |
|
21-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Add a predicate/getter when checking for incomplete array types ("[]"). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5c06a69a3ef19cc6dbeed7f2acb9de28b66c45d4 |
|
21-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Add a predicate/getter when checking for incomplete array types ("[]"). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4300121ffff80d4b23d17689930e2aa2a83086b9 |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
- Change Type::isComplexType() to exlude GCC's complex integer extension. In general, we will keep the lowest level Type predicates "pure" (i.e. true to the C99 spec). - Modify Sema::UsualArithmeticConversions() to work with the new definition of Type::isComplexType(). This is a nice cleanup and also fixes a bug submitted by Eli (which I've added to the test suite). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
02f62a9fedbc370fba081303399410a3afdde29f |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
- Change Type::isComplexType() to exlude GCC's complex integer extension. In general, we will keep the lowest level Type predicates "pure" (i.e. true to the C99 spec). - Modify Sema::UsualArithmeticConversions() to work with the new definition of Type::isComplexType(). This is a nice cleanup and also fixes a bug submitted by Eli (which I've added to the test suite). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8888c7acd5cd43c7f910bfe03f5979ed4011de2a |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Add a comment... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
96d2c438f5c9ada8229f7f2ac049d2e9957bc954 |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Add a comment... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
36e35e652e28cbdffbeda8cc3362888357ec7173 |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Rework commit r45976, which was incorrect. - Add Type::isComplexIntegerType(), Type::getAsComplexIntegerType(). - Don't inlude complex types with Type::isIntegerType(), which is too general. - Use the new predicates in Sema::UsualArithmeticConversions() to recognize/convert the types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4cdec1c3ca80124024a787ce32833fd5b20cbb15 |
|
15-Jan-2008 |
Steve Naroff <snaroff@apple.com> |
Rework commit r45976, which was incorrect. - Add Type::isComplexIntegerType(), Type::getAsComplexIntegerType(). - Don't inlude complex types with Type::isIntegerType(), which is too general. - Use the new predicates in Sema::UsualArithmeticConversions() to recognize/convert the types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2ea769b494649b5ca4864acf154f2fedc7718029 |
|
09-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a typo, patch by Mike Stump! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3830f68e9e461a1b812b70f93103f8fb4ccb8c40 |
|
09-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a typo, patch by Mike Stump! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
42730c53aeef9ac6c258d317065fdf38da4e043c |
|
07-Jan-2008 |
Ted Kremenek <kremenek@apple.com> |
Substituted all instances of the string "Objc" for "ObjC". This fixes some naming inconsistencies in the names of classes pertaining to Objective-C support in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a526c5c67e5a0473c340903ee542ce570119665f |
|
07-Jan-2008 |
Ted Kremenek <kremenek@apple.com> |
Substituted all instances of the string "Objc" for "ObjC". This fixes some naming inconsistencies in the names of classes pertaining to Objective-C support in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
959e5be188a505881058777f35abaaa3fe2de40b |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Don't attribute in file headers anymore. See llvmdev for the discussion of this change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0bc735ffcfb223c0186419547abaa5c84482663e |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Don't attribute in file headers anymore. See llvmdev for the discussion of this change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5319d9cf6aa4db4992d7c426d0fabfec0a49011a |
|
20-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
More objective-c typechecking stuff. This is work in progress and more patches are due to arrive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7359f04a80cae1dcbd944ee07eb50a27ce7f5077 |
|
20-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
More objective-c typechecking stuff. This is work in progress and more patches are due to arrive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
957442db1d23f62ee2d0d71310bee240606b267d |
|
19-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch concludes implementation of dynamic objective-c type qualified by protocol list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
411f373abf5692a1bd90d35a139d955fa67ae82d |
|
19-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch concludes implementation of dynamic objective-c type qualified by protocol list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dcb2b1e489948a570ee07ca65e12d42edffa20ef |
|
18-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactoring work. ObjcQualifiedIdType is now derived from 'Type'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d58fabf7ed279be18a5e82617f809c9deff9be67 |
|
18-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactoring work. ObjcQualifiedIdType is now derived from 'Type'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0448b4f2fecceebc0bddd67fe0f2c89afe604fdf |
|
18-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
remove the loc argument to Type::isConstantSizeType, which isn't useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9bfa73c5ab7bf4b0e749d04f29da6884e8d5bd9f |
|
18-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
remove the loc argument to Type::isConstantSizeType, which isn't useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6df9359cad97dc722c01e3ddbc6686ebcf21189c |
|
18-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fix const propagation bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6e999782a102eb444cfc7b8eaa64f84911fdcf4f |
|
18-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fix const propagation bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e76e8416ff29ee39140b64ed47731237c67434ae |
|
17-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to implemented objective-c's dynamic object pointer qualified with the protocol list (id<P,...> types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c569249ca0ab755ac79d8cbbfcb2bcae19743624 |
|
17-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to implemented objective-c's dynamic object pointer qualified with the protocol list (id<P,...> types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0c2f214d3500d1d080afa36b96db40407b91e70d |
|
13-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to make ObjcQualifiedInterfaceType inherit ObjcInterfaceType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
06cef25d0b8c383217413f061441c7ea40d1052b |
|
13-Dec-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to make ObjcQualifiedInterfaceType inherit ObjcInterfaceType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
64be4ada44c719304c1dee75fb1e551f84b7779a |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Added QualType::ReadBackpatch to allow QualType initialization with backpatching. This original was available, but then we removed it. It is back again to help with deserialization of FieldDecls. Because FieldDecls are currently owned by RecordDecls, which are owned by a TagType, the type of the FieldDecl may not be deserialized prior to deserializing the FieldDecl. Thus backpatching solves the problem of constructing a FieldDecl that references a type that has not yet been deserialized. Simplified serialization of TagType to not require passing in the SerializedPtrID. Registration of the materialized type object is done after the CreateImpl method returns (as with other types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
21d50e12c3c412d8457071dc419363b7a7e8b855 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Added QualType::ReadBackpatch to allow QualType initialization with backpatching. This original was available, but then we removed it. It is back again to help with deserialization of FieldDecls. Because FieldDecls are currently owned by RecordDecls, which are owned by a TagType, the type of the FieldDecl may not be deserialized prior to deserializing the FieldDecl. Thus backpatching solves the problem of constructing a FieldDecl that references a type that has not yet been deserialized. Simplified serialization of TagType to not require passing in the SerializedPtrID. Registration of the materialized type object is done after the CreateImpl method returns (as with other types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
581571c848395ba6c7401b5384f91ead457c9adc |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of RecordDecls. Changed serialization of TagType to have an owning pointer to the referred TagDecl. This should hopefully fix a bug where TagDecls (including decls from structs, etc.) were not serialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
aad48b6b2dfc81ad36a05d161c775cd6aab5b339 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of RecordDecls. Changed serialization of TagType to have an owning pointer to the referred TagDecl. This should hopefully fix a bug where TagDecls (including decls from structs, etc.) were not serialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
87f0429f888ee5d332304641611b88f7b54b5065 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeNoProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2b14d46231fd75ad1e58043e9fab029c54c817cb |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeNoProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5cde3834f43c0946ec8debfda9c6fb588b6b33fd |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of VariableArrayTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ed1a01d4d0ee773eb6478ff9701b46d2f0c06952 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of VariableArrayTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2f665cd2aa263b89ac880dc45283847e5322a6c2 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b28166d11e788bc99fd5cd47c4f649ea0195c3b1 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4234c1b1a9c858b005f4ad7dc85908b63adcafdd |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of ConstantArrayType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
da5dbb4a0ad091791bdb0dad1b9ceba3c04a7f5c |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of ConstantArrayType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8db5aa1ca0d42cf8aeaa78cbe196a50f70fc9fc1 |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of TagTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a225400804cc53dd9cf6b28cf0e8e7f103a7522f |
|
14-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of TagTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a7392b33f5f6a4fe080b3713877d5c58428cf39f |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Removed line with typo (declared friendship with ASTContext). Line was not needed since friendship is declared elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
950ba9cc6aaa508381fbf56224c68d2da81caa4b |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Removed line with typo (declared friendship with ASTContext). Line was not needed since friendship is declared elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
034a78cafc3505323698ea72db19dc5095324e06 |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Rewrote type serialization to used the same methodology as we do for Decls. Removed tons of dead code in ASTContext concerning how types use to be serialized. Removed serialization methods from QualType that are no longer used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
03ed44061df258e74a40383bda849e14b892a8c6 |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Rewrote type serialization to used the same methodology as we do for Decls. Removed tons of dead code in ASTContext concerning how types use to be serialized. Removed serialization methods from QualType that are no longer used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
acba361778a020cd919fca85cf45088e9b81a0af |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Renamed all serialization "Materialize" methods to "Create" to conform with the new serialization API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0f84c0059cec39fd1c73ac05bc2864dca664e7f4 |
|
13-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Renamed all serialization "Materialize" methods to "Create" to conform with the new serialization API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ca14c33a9b2c6548130e92759368494f37ef46d5 |
|
07-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Added static inline method "ReadVal" to QualType for more succinct deserialization code of objects containing QualTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f623c85c80f875be9d20caf4a0c15092e42e0b9e |
|
07-Nov-2007 |
Ted Kremenek <kremenek@apple.com> |
Added static inline method "ReadVal" to QualType for more succinct deserialization code of objects containing QualTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c8253192b917a5684717c58f4032e0891d089b00 |
|
31-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of Variable Array Types (VLAs). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2e7d352dbec06755105237afba183492d31d03cb |
|
31-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of Variable Array Types (VLAs). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3793e1ab25169c0d5be43f3abe2b4dc92989c043 |
|
30-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
VariableArrayTypes (VLAs) without a size expression are now uniqued and inserted into a FoldingSet owned by ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2bd24ba6d10f8c811c8e2a57c8397e07082ba497 |
|
30-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
VariableArrayTypes (VLAs) without a size expression are now uniqued and inserted into a FoldingSet owned by ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c81f316d260b8b8b9da21a0f9a22baa334e063fb |
|
29-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Encoding for objectiive-c methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
33e1d64ab5cd5d27f8530ccd056191fe2c9f3f2e |
|
29-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Encoding for objectiive-c methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fce813e3159a67a57a03cdca45ac4e10d4cffac3 |
|
29-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Modified StmtIterator to support iteration over the size expressions of VariableTypeArray types that appear in DeclStmts. Removed operator-- from StmtIterator. operator-- added undesired complexity, and we have no consumers of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
92866e2e90f6d93fb95e25a7ac4438e239d89ce6 |
|
29-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Modified StmtIterator to support iteration over the size expressions of VariableTypeArray types that appear in DeclStmts. Removed operator-- from StmtIterator. operator-- added undesired complexity, and we have no consumers of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2afc72b0b6b3d2f44ca2576c98d307310d556983 |
|
29-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a major bug in the Type::getAs*Type methods: they didn't strip off typeof(type) and typeof(expr) correctly. Now provide a single point of contact (Type::getDesugaredType) for doing the shallow stripping we need. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dea6146deede4b89a1757d46cd92ebf158659c25 |
|
29-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a major bug in the Type::getAs*Type methods: they didn't strip off typeof(type) and typeof(expr) correctly. Now provide a single point of contact (Type::getDesugaredType) for doing the shallow stripping we need. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
68ee6a63fe3a1a4d386d57057c8ad4859c85748d |
|
28-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization for TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4f50ee3e6db9d5ec8c1a56fa07510dab06194564 |
|
28-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization for TypedefType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0b365b4f0b4aa1fdd5d89942342f6c6f6fefd882 |
|
28-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4340bfa9f442b450b8d81081fb463b03a0096230 |
|
28-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b4498bd320cffda59566b658b59fbbc70978adf5 |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeNoProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e81e24c84bae6d5a999d9e34a21c4ec73f91d37e |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization of FunctionTypeNoProto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b90d06fb38d0b1862749bd0a0d24c3b94d4d5e4f |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization for VectorType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
71ac846a4e20ad378700df040abeb3eb06163bca |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Implemented serialization for VectorType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
27a32d6f18844a97446d6e2002bf181da591332a |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
More work on type serialization: added support for serializing BuiltinTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a4cb4525cf4bf8f61299147f22ffc187ed1eac9e |
|
27-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
More work on type serialization: added support for serializing BuiltinTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
78f138f44886abc5ab7fc1551d501308f1846d80 |
|
26-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Added skeleton implementation of serialization for types (not complete). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
73af669633e13c813f80cd15ecf3e6414778aee4 |
|
26-Oct-2007 |
Ted Kremenek <kremenek@apple.com> |
Added skeleton implementation of serialization for types (not complete). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
85f0dc588193fc73c58e73769e266cd83ed415fe |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
Move type compatibility predicates from Type to ASTContext. In addition, the predicates are now instance methods (they were previously static class methods on Type). This allowed me to fix the following hack from this weekend... // FIXME: Devise a way to do this without using strcmp. // Would like to say..."return getAsStructureType() == IdStructType;", but // we don't have a pointer to ASTContext. bool Type::isObjcIdType() const { if (const RecordType *RT = getAsStructureType()) return !strcmp(RT->getDecl()->getName(), "objc_object"); return false; } ...which is now... bool isObjcIdType(QualType T) const { return T->getAsStructureType() == IdStructType; } Side notes: - I had to remove a convenience function from the TypesCompatibleExpr class. int typesAreCompatible() const {return Type::typesAreCompatible(Type1,Type2);} Which required a couple clients get a little more verbose... - Result = TCE->typesAreCompatible(); + Result = Ctx.typesAreCompatible(TCE->getArgType1(), TCE->getArgType2()); Overall, I think this change also makes sense for a couple reasons... 1) Since ASTContext vends types, it makes sense for the type compatibility API to be there. 2) This allows the type compatibility predeciates to refer to data not strictly present in the AST (which I have found problematic on several occasions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ec0550fa3653d46560bf4484a2e988329c228e39 |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
Move type compatibility predicates from Type to ASTContext. In addition, the predicates are now instance methods (they were previously static class methods on Type). This allowed me to fix the following hack from this weekend... // FIXME: Devise a way to do this without using strcmp. // Would like to say..."return getAsStructureType() == IdStructType;", but // we don't have a pointer to ASTContext. bool Type::isObjcIdType() const { if (const RecordType *RT = getAsStructureType()) return !strcmp(RT->getDecl()->getName(), "objc_object"); return false; } ...which is now... bool isObjcIdType(QualType T) const { return T->getAsStructureType() == IdStructType; } Side notes: - I had to remove a convenience function from the TypesCompatibleExpr class. int typesAreCompatible() const {return Type::typesAreCompatible(Type1,Type2);} Which required a couple clients get a little more verbose... - Result = TCE->typesAreCompatible(); + Result = Ctx.typesAreCompatible(TCE->getArgType1(), TCE->getArgType2()); Overall, I think this change also makes sense for a couple reasons... 1) Since ASTContext vends types, it makes sense for the type compatibility API to be there. 2) This allows the type compatibility predeciates to refer to data not strictly present in the AST (which I have found problematic on several occasions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1a402e6eccba8d1de9e1ceb5d6d271678af5933f |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
Teach the type checker about "id". This removes the following bogus warning... [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang t.m t.m:29:18: warning: incompatible pointer types assigning 'id' to 'NSString *' resultString = [[NSString alloc] initWithFormat:0 arguments:0]; ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
954ea17353d3b24be52424bc287bdb6bef787fec |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
Teach the type checker about "id". This removes the following bogus warning... [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang t.m t.m:29:18: warning: incompatible pointer types assigning 'id' to 'NSString *' resultString = [[NSString alloc] initWithFormat:0 arguments:0]; ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
705380bc9b8eaa0e7285eb64f22ef18112fe9057 |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
- Teach ObjcInterfaceDecl::lookupInstance/ClassMethod to look through protocols. - Start looking up methods in the global method pools (for "id"). - Start integrating interface types into the type system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ff1afdb4f5ee2fc74ec0af788e18b3a036eaaafe |
|
15-Oct-2007 |
Steve Naroff <snaroff@apple.com> |
- Teach ObjcInterfaceDecl::lookupInstance/ClassMethod to look through protocols. - Start looking up methods in the global method pools (for "id"). - Start integrating interface types into the type system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
550e05034c6c8efcb7ab4c65f58048eee0892237 |
|
13-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Check and diagnose that objective-c objects may not be statically allocated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e7f64cc250245aa6c0e1ef6da7e9b6f62d5fedde |
|
13-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Check and diagnose that objective-c objects may not be statically allocated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d855a6ead44e3a875179400c472ac0b37df35f70 |
|
11-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
slightly simplify interface git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
00bb283ecdfb1d5c69261c7663d166cee3f11a9b |
|
11-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
slightly simplify interface git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
91193f64449fe1faf9306a04ade6539d26f44037 |
|
11-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to create protocol conforming class types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b6c9051c6522894978c9ba6a819a659d102db36 |
|
11-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to create protocol conforming class types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c5a342d3b1cc5fa6eef09653a6d8d091928366c0 |
|
09-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Added better comment about protocol list for class ObjcQualifiedInterfaceType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
878520b6413663a13b1b56c7e3f256b1ecbb8db4 |
|
09-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Added better comment about protocol list for class ObjcQualifiedInterfaceType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c04aff17dcfaa5f628bcfed0e393f2e946ea5184 |
|
09-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Added a new class for Interfaces qualified by protocol list. Protocols are now sorted and made unique in the list. Enhanced pretty printer for @interface (So, I can see the protocol list). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e37882ad335896dedf345102bb425383e6221c37 |
|
09-Oct-2007 |
Fariborz Jahanian <fjahanian@apple.com> |
Added a new class for Interfaces qualified by protocol list. Protocols are now sorted and made unique in the list. Enhanced pretty printer for @interface (So, I can see the protocol list). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6b1ed8d95b813c214fb3ee7e00dc1d31c4116067 |
|
06-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
simplify the interface for creating ObjcForwardProtocolDecl git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b97de3eddf0a0f7ff97204e7def6b7e0aa8953f2 |
|
06-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
simplify the interface for creating ObjcForwardProtocolDecl git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
92803daaa6a40a3899c2e599bddc42732c2ce593 |
|
24-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed VC++ bitfield to unsigned/signed sign propagation issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a8ae51f79d35b7c1822ba4a086176b4a8c862862 |
|
24-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed VC++ bitfield to unsigned/signed sign propagation issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6d87ce556801a0e0e596bec8fd25287800d00ee0 |
|
17-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed a VC++ issue related to bitmasks. As it turns out the compiler fills the unused bits of the word a bitmask is stored in with '1' (or randomly, I can't tell, I've seen '1' so far only), which creates wrong results in certain cases. Please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
0bcccc763bef79171015c3b270e505b9c864ea8b |
|
17-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed a VC++ issue related to bitmasks. As it turns out the compiler fills the unused bits of the word a bitmask is stored in with '1' (or randomly, I can't tell, I've seen '1' so far only), which creates wrong results in certain cases. Please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
74a340749eb63af1ba7098c67f3ef72bd48f5ae8 |
|
11-Sep-2007 |
Ted Kremenek <kremenek@apple.com> |
Fixed isFunctionPointerType to correctly handle typedefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
01c2c6e3c94a3fa2ac15851b4af5de6dc3ae2af8 |
|
11-Sep-2007 |
Ted Kremenek <kremenek@apple.com> |
Fixed isFunctionPointerType to correctly handle typedefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
83b01279f2e6718581eeb1e5bdba58aa88e4649b |
|
10-Sep-2007 |
Ted Kremenek <kremenek@apple.com> |
Added "isFunctionPointerType()" so that we can readily see if a DeclRefExpr refers to a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
498b0d1aba38f5ec64d566d1dd9e6be237ecc50f |
|
10-Sep-2007 |
Ted Kremenek <kremenek@apple.com> |
Added "isFunctionPointerType()" so that we can readily see if a DeclRefExpr refers to a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7c6f0c755e48a2782bc0a0a4cfc63dc84e0f11d5 |
|
07-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed compilation on Windows. Silenced a couple of warnings. Added *.vcproj file for new clangAnalysis library. Renamed Basic to clangBasic projects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
124dd7b5777e29ecac006822bd4d4623f0dc4264 |
|
07-Sep-2007 |
Hartmut Kaiser <hartmut.kaiser@gmail.com> |
Fixed compilation on Windows. Silenced a couple of warnings. Added *.vcproj file for new clangAnalysis library. Renamed Basic to clangBasic projects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
81f1bbabbdb7dce07802111e2d9648eedc866d51 |
|
06-Sep-2007 |
Steve Naroff <snaroff@apple.com> |
The goal of this commit is to get just enough Sema support to recognize Objective-C classes as types. That said, the AST nodes ObjcInterfaceDecl, ObjcInterfaceType, and ObjcClassDecl are *very* preliminary. The good news is we no longer need -parse-noop (aka MinimalActions) to parse cocoa.m. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3536b443bc50d58a79f14fca9b6842541a434854 |
|
06-Sep-2007 |
Steve Naroff <snaroff@apple.com> |
The goal of this commit is to get just enough Sema support to recognize Objective-C classes as types. That said, the AST nodes ObjcInterfaceDecl, ObjcInterfaceType, and ObjcClassDecl are *very* preliminary. The good news is we no longer need -parse-noop (aka MinimalActions) to parse cocoa.m. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4f9109983a4b4e69c41436ac4b3ae9a370e9a725 |
|
04-Sep-2007 |
Steve Naroff <snaroff@apple.com> |
Simplified initializer semantic analysis by adding the following 2 methods: - ArrayType::getBaseType(), and - ConstantArrayType::getMaximumElements(). Wanted to do this cleanup before adding structure support, which will add more complexity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7cf8c444320313f0e5b8a483daa996ba844b11ff |
|
04-Sep-2007 |
Steve Naroff <snaroff@apple.com> |
Simplified initializer semantic analysis by adding the following 2 methods: - ArrayType::getBaseType(), and - ConstantArrayType::getMaximumElements(). Wanted to do this cleanup before adding structure support, which will add more complexity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c75ccff9e318638cac63fe392f68893ab4177f45 |
|
03-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate some VC++ warnings, patch by Hartmut Kaiser! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b8128140956c6f8f0ab143818775a81f4b4aa477 |
|
03-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate some VC++ warnings, patch by Hartmut Kaiser! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5eb879b0ab7cc0b98c5700b0c19cae3797530d9c |
|
31-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Removed Sema::VerifyConstantArrayType(). With the new Array/ConstantArray/VariableArray nodes, this routine was causing more trouble than it was worth. Anders/Chris noticed that it could return an error code without emiting a diagnostic (which results in an silent invalid decl, which should *never* happen). In addition, this routine didn't work well for typedefs and field decls. Lastly, it didn't consider that initializers aren't in place yet. Added Type::getAsConstantArrayType(), Type::getAsVariableArrayType(), Type::getAsVariablyModifiedType(), and Type::isVariablyModifiedType(); Modified Sema::ParseDeclarator() and Sema::ParseField() to use the new predicates. Also added a FIXME for the initializer omission. Also added a missing test for "static" @ file scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d7444aac1af1c2c1d5e5b7467ecf6006ee2d8abe |
|
31-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Removed Sema::VerifyConstantArrayType(). With the new Array/ConstantArray/VariableArray nodes, this routine was causing more trouble than it was worth. Anders/Chris noticed that it could return an error code without emiting a diagnostic (which results in an silent invalid decl, which should *never* happen). In addition, this routine didn't work well for typedefs and field decls. Lastly, it didn't consider that initializers aren't in place yet. Added Type::getAsConstantArrayType(), Type::getAsVariableArrayType(), Type::getAsVariablyModifiedType(), and Type::isVariablyModifiedType(); Modified Sema::ParseDeclarator() and Sema::ParseField() to use the new predicates. Also added a FIXME for the initializer omission. Also added a missing test for "static" @ file scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
24c9b98cc6a8de4a080e2dedb2797bdc2eeb688b |
|
30-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Polish yesterday's Array/ConstantArray/VariableArray rewrite, removing a couple FIXME's. Refactored Array/VariableArray, moving SizeModifier/IndexTypeQuals back up to Array. These attributes are not specific to VLA's. Most of them are specific to array parameter types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c9406125e2cac9208098655ac8058c095c2c3a65 |
|
30-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Polish yesterday's Array/ConstantArray/VariableArray rewrite, removing a couple FIXME's. Refactored Array/VariableArray, moving SizeModifier/IndexTypeQuals back up to Array. These attributes are not specific to VLA's. Most of them are specific to array parameter types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
83c13010359c33354c581acee65d0c986a75247e |
|
30-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Fix the following redefinition errors submitted by Keith Bauer... [dylan:~/llvm/tools/clang] admin% cat tentative_decls.c // incorrectly generates redefinition error extern int array[3]; int array[3]; // incorrectly generates a redefinition error extern void nup(int a[3]); void nup(int a[3]) {} It turns out that this exposed a fairly major flaw in the type system, array types were never getting uniqued! This is because all array types contained an expression, which aren't unique. To solve this, we now have 2 array types, ConstantArrayType and VariableArrayType. ConstantArrayType's are unique, VAT's aren't. This is a fairly extensive set of fundamental changes. Fortunately, all the tests pass. Nevertheless, there may be some collateral damage:-) If so, let me know! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fb22d96692c5240fb8d611290dbf7eeed3759c73 |
|
30-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Fix the following redefinition errors submitted by Keith Bauer... [dylan:~/llvm/tools/clang] admin% cat tentative_decls.c // incorrectly generates redefinition error extern int array[3]; int array[3]; // incorrectly generates a redefinition error extern void nup(int a[3]); void nup(int a[3]) {} It turns out that this exposed a fairly major flaw in the type system, array types were never getting uniqued! This is because all array types contained an expression, which aren't unique. To solve this, we now have 2 array types, ConstantArrayType and VariableArrayType. ConstantArrayType's are unique, VAT's aren't. This is a fairly extensive set of fundamental changes. Fortunately, all the tests pass. Nevertheless, there may be some collateral damage:-) If so, let me know! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
bbe686be29157b575e53fbed328613117b525f26 |
|
29-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Teach Type::is[un]SignedIntegerType about enum decls. This allows the code generator to emit signed comparisons when needed for enum decl references. This implements test/CodeGen/enum.c. I think enums should be good now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d5bbce4382622feb4ca5978c4bb8fcceb7aaec00 |
|
29-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Teach Type::is[un]SignedIntegerType about enum decls. This allows the code generator to emit signed comparisons when needed for enum decl references. This implements test/CodeGen/enum.c. I think enums should be good now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c33c060e2f4e7c7e89e3b809f52cfc6d55ea9838 |
|
27-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Add Type::getAsBuiltinType() and Type::builtinTypesAreCompatible(). Modified Type::typesAreCompatible() to use the above. This fixes the following bug submitted by Keith Bauer (thanks!). int equal(char *a, const char *b) { return a == b; } Also tweaked Sema::CheckCompareOperands() to ignore the qualifiers when comparing two pointer types (though it doesn't relate directly to this bug). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
77878cc5aa6ad01fc0c91bac1a61819dbf3bf691 |
|
27-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Add Type::getAsBuiltinType() and Type::builtinTypesAreCompatible(). Modified Type::typesAreCompatible() to use the above. This fixes the following bug submitted by Keith Bauer (thanks!). int equal(char *a, const char *b) { return a == b; } Also tweaked Sema::CheckCompareOperands() to ignore the qualifiers when comparing two pointer types (though it doesn't relate directly to this bug). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7a85fa1ba94c9f4cf960463dd3eb444ef6f89446 |
|
21-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
add getAsComplexType() for consistency git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c6fb90a7246c2d5d3233e70107bf9d8c7c9e535b |
|
21-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
add getAsComplexType() for consistency git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8d3b170e5cb1700b5cbd227182bc29ca0d16819d |
|
09-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Finish implementing __builtin_classify_type()... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
13b7c5ff42d6077a8d59e2c9ec9e7fedd0150ae6 |
|
09-Aug-2007 |
Steve Naroff <snaroff@apple.com> |
Finish implementing __builtin_classify_type()... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2e3b1d2ed22e5638fa9c55cc1ea5dac4db6aecdc |
|
07-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
add some helpers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7effa1aceac1219529af23c776835f855b8d905c |
|
07-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
add some helpers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
42158e7b3a95f41d3482f1fb3a67392dbbf745da |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Add support for encoding a OCUVectorComponent into a single integer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b8f849da3cedee2f61ad98389115ddd04e439d60 |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Add support for encoding a OCUVectorComponent into a single integer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
9096b795541c783297fb19684a58c54d0fe823b8 |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
rename some helpers, have them return the idx of the field being accessed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
88dca0464804b8b26ae605f89784c927e8493ddd |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
rename some helpers, have them return the idx of the field being accessed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
ea255914df6c2d8fb79de53b5c2728b7b69e0d99 |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
mark some methods static, don't consider a vector to be an ocuvector git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
667405a3b00b04a36537d3a35ab7bdc6e2dd8c38 |
|
03-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
mark some methods static, don't consider a vector to be an ocuvector git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
b0fdfd50e1e4011486d5cb3773e1e87c8ec4325a |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
move trivial type predicates inline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
611c1fff195d32df97706e0920c92468b2509900 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
move trivial type predicates inline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e35a104a7d5caf8fa71117fbaa6f18cacc53c7a7 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
split the rest of the type predicates into pure predicates: there is now an isXXXType and a getAsXXXType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c8629630ce3e7f0da231bf10a4b39240caaac68a |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
split the rest of the type predicates into pure predicates: there is now an isXXXType and a getAsXXXType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
f0c4a0a830c9154b1ae72e497c2ce586c10e9b71 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
rename isReferenceType to follow the new scheme. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a1d9fdea79ba7bbd71862b9f9f78f5f117331fc7 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
rename isReferenceType to follow the new scheme. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7931f4a186bc76b21dd4629ee74d64264a7fb8a2 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
make isPointerType() a pure predicate, rename the existing one to getAsPointerType() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
befee48ff2a1dab236c5700f00ecca1cfdcd5837 |
|
31-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
make isPointerType() a pure predicate, rename the existing one to getAsPointerType() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7cbb14653934a298c09002b87704dc6531261771 |
|
31-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Add parsing and AST support for GNU "typeof". Many small changes to lot's of files. Still some FIXME's, however the basic support is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
d1861fd633d5096a00777c918eb8575ea7162fe7 |
|
31-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Add parsing and AST support for GNU "typeof". Many small changes to lot's of files. Still some FIXME's, however the basic support is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
6154214e20225a883a8a00226499534e9b514315 |
|
30-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Upgrade a comment... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
fcac0fff877a461bc5d5a57e6c6727a4c819d95a |
|
30-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Upgrade a comment... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
c11705f9b742b542724dd56796bf90e07191e342 |
|
29-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Added a new expression, OCUVectorComponent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
31a458462c6cf417a84e0c47852b18fb22d79acb |
|
29-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Added a new expression, OCUVectorComponent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
1b8a46c945927340ae7e79b771e93e7d36da4851 |
|
28-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Implement syntax/semantic analysis for OCU Vector Components. Next step, AST support... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
e1b31fedbc006e6e4071bbb4f74c6116b56cfa9f |
|
28-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Implement syntax/semantic analysis for OCU Vector Components. Next step, AST support... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
806b319509d01bffe47317f11140c930da800dbb |
|
26-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Add Type::isOCUVectorType(). Convert isFunctionType(), isStructureType(), and isUnionType() to the new API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7064f5c95bbdb17680d0ea658d4090898c2592d3 |
|
26-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Add Type::isOCUVectorType(). Convert isFunctionType(), isStructureType(), and isUnionType() to the new API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
2cb6638a26cfa999e5fb999e6af9211127e681c1 |
|
26-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Various improvements to Sema::ParseMemberReferenceExpr(). - Added source range support to Diag's. - Used the new type predicate API to remove dealing with the canonical type explicitly. - Added Type::isRecordType(). - Removed some casts. - Removed a const qualifier from RecordType::getDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
dfa6aae5a119a527e537c35566ba3272fd8c5d74 |
|
26-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Various improvements to Sema::ParseMemberReferenceExpr(). - Added source range support to Diag's. - Used the new type predicate API to remove dealing with the canonical type explicitly. - Added Type::isRecordType(). - Removed some casts. - Removed a const qualifier from RecordType::getDecl(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
4b0096578e961587d1ec0ed5dce45f592a65ed41 |
|
25-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a couple of bugs, add some new cool stuff. 1. Fix a todo in Parser::ParseTag, to recover better. On code like that in test/Sema/decl-invalid.c it causes us to return a single error instead of multiple. 2. Fix an error in Sema::ParseDeclarator, where it would crash if the declarator didn't have an identifier. Instead, diagnose the problem. 3. Start adding infrastructure to track the range of locations covered by a declspec or declarator. This is mostly implemented for declspec, but could be improved, it is missing for declarator. Thanks to Neil for pointing out this crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
700204c74b455746752e851b25565ebf932f5340 |
|
24-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
Fix Sema::ParseCallExpr()...it wasn't doing the default array/function promotions on it's argument types. This resulted in the following errors when compiling promote_types_in_proto.c test... [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang test/Parser/promote_types_in_proto.c test/Parser/promote_types_in_proto.c:7:24: error: incompatible types passing 'char *[]' to function expecting 'char *const []' arrayPromotion(argv); ~~~~~~~~~~~~~~ ^~~~ test/Parser/promote_types_in_proto.c:8:27: error: incompatible types passing 'void (char *const [])' to function expecting 'void (char *const [])' functionPromotion(arrayPromotion); ~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~ 2 diagnostics generated. When fixing this, noticed that both ParseCallExpr() and ParseReturnStmt() were prematurely comparing types for equivalence. This is incorrect (since the expr. promotions haven't been done yet). To fix this, I moved the check "down" to Sema::CheckAssignmentConstraints(). I also converted Type::isArrayType() to the modern API (since I needed it). Still more Type predicates to convert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
942cfd37297528918616d06cd6e4e8bd6e4915a2 |
|
20-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a valgrind error noticed by Benoit Boissinot git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5d2a6303467184b1f159bb6556efc434e50e3c28 |
|
18-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
implement sizeof/alignof support for structs, unions and complex. This allows us to compile this: struct abc { char A; double D; }; int foo() { return sizeof(struct abc); return __alignof__(struct abc); } Into: ret i32 16 ret i32 8 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
73322924127c873c13101b705dd823f5539ffa5f |
|
18-Jul-2007 |
Steve Naroff <snaroff@apple.com> |
First round of extended vector support. Here is an overview... - added ocu_vector_type attribute, Sema::HandleOCUVectorTypeAttribute(). - added new AST node, OCUVectorType, a subclass of VectorType. - added ASTContext::getOCUVectorType. - changed ASTContext::convertToVectorType() to ASTContext::getVectorType(). This is unrelated to extended vectors, however I was in the vicinity and it was on my todo list. Added a FIXME to Sema::HandleVectorTypeAttribute to deal with converting complex types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
251dcaf8616c6f04051e214f35cadb7de42aef7e |
|
17-Jul-2007 |
Bill Wendling <isanbard@gmail.com> |
Return the correct type from isReferenceType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a2c7767ce7d8feb10253f4b650826a20f3324c6f |
|
17-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
In the final step for preserving typedef info better in the AST, upgrade isPointerType and isVectorType to only look through a single level of typedef when one is present. For this invalid code: typedef float float4 __attribute__((vector_size(16))); typedef int int4 __attribute__((vector_size(16))); typedef int4* int4p; void test(float4 a, int4p result, int i) { result[i] = a; } we now get: t.c:5:15: error: incompatible types assigning 'float4' to 'int4' result[i] = a; ~~~~~~~~~ ^ ~ instead of: t.c:5:15: error: incompatible types assigning 'float4' to 'int __attribute__((vector_size(16)))' result[i] = a; ~~~~~~~~~ ^ ~ The rest of the type predicates should be upgraded to do the same thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
7a2e047c602d6ba28d6c434c990d4b9f7ef8c694 |
|
16-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Now that isPointerType can return a pointer type, avoid stripping off typedef information in the common case. On this invalid code: typedef float float4 __attribute__((vector_size(16))); typedef int int4 __attribute__((vector_size(16))); void test(float4 a, int4 *result, int i) { result[i] = a; } we now generate: t.c:5:15: error: incompatible types assigning 'float4' to 'int4' instead of: t.c:5:15: error: incompatible types assigning 'float4' to 'int __attribute__((vector_size(16)))' This implements test/Sema/typedef-retain.c git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
3acb13805673d47be95829bd5a4b1707952c0b6f |
|
16-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
as a very useful feature, make isVectorType and isPointerType return the actual vectortype or pointertype when they return success. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
590b6646ef747d2f7b42e5f40487ff07642d7b6f |
|
16-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Refactor code so that isIntegerConstantExpr has an ASTContext available. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
a7674d8a9a69f3f6fe16e70cf2a3b2b15fb7c43d |
|
14-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Move getSize() out of type, into ASTContext, where it has target info, and where ASTContext can manage caches for struct layout, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
8b9023ba35a86838789e2c9034a6128728c547aa |
|
13-Jul-2007 |
Chris Lattner <sabre@nondot.org> |
Implement codegen for + and - with pointers. Patch contributed by Keith Bauer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|
5f016e2cb5d11daeb237544de1c5d59f20fe1a6e |
|
11-Jul-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Stage two of getting CFE top correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Type.h
|