bc2a35d5ff492107dab5bdb7682f0da2f4a88861 |
|
08-Dec-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Finish implementing 'selected constructor' rules for triviality in C++11. In the cases where we can't determine whether special members would be trivial while building the class, we eagerly declare those special members. The impact of this is bounded, since it does not trigger implicit declarations of special members in classes which merely *use* those classes. In order to determine whether we need to apply this rule, we also need to eagerly declare move operations and destructors in cases where they might be deleted. If a move operation were supposed to be deleted, it would instead be suppressed, and we could need overload resolution to determine if we fall back to a trivial copy operation. If a destructor were implicitly deleted, it would cause the move constructor of any derived classes to be suppressed. As discussed on cxx-abi-dev, C++11's selected constructor rules are also retroactively applied as a defect resolution in C++03 mode, in order to identify that class B has a non-trivial copy constructor (since it calls A's constructor template, not A's copy constructor): struct A { template<typename T> A(T &); }; struct B { mutable A a; }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
2217f853e1909b80f87ce0dcec5543e894d11bc9 |
|
14-Aug-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Make __is_convertible_to handle abstract types correctly. PR13591. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
470360d8035ce4213a963d281c3b542edfea9fda |
|
28-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "Use the C++11 definition of PODness for __is_pod in C++11 mode." This is just papering over a major bug in isPODType, real fix coming up soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
046e8691ff467541ef7c32c9fc6bf41b1dcbd03a |
|
28-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use the C++11 definition of PODness for __is_pod in C++11 mode. Keep the old definition for C++98 so we don't break tr1::is_pod. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
e653ba2f3b6d993b5d410554c12416c03ec7775b |
|
26-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Special members which are defaulted or deleted on their first declaration are trivial if the implicit declaration would be. Don't forget to set the Trivial flag on the special member as well as on the class. It doesn't seem ideal that we have two separate mechanisms for storing this information, but this patch does not attempt to address that. This leaves us in an interesting position where the has_trivial_X trait for a class says 'yes' for a deleted but trivial X, but is_trivially_Xable says 'no'. This seems to be what the standard requires. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
4ca8ac2e61c37ddadf37024af86f3e1019af8532 |
|
24-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement a new type trait __is_trivially_constructible(T, Args...) that provides the behavior of the C++11 library trait std::is_trivially_constructible<T, Args...>, which can't be implemented purely as a library. Since __is_trivially_constructible can have zero or more arguments, I needed to add Yet Another Type Trait Expression Class, this one handling arbitrary arguments. The next step will be to migrate UnaryTypeTrait and BinaryTypeTrait over to this new, more general TypeTrait class. Fixes the Clang side of <rdar://problem/10895483> / PR12038. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
25d0a0f67d9e949ffbfc57bf487012f5cbfd886e |
|
23-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Provide the __is_trivially_assignable type trait, which provides compiler support for the std::is_trivially_assignable library type trait. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
3add9f0ac80b0a4d78611dcdb4fd89c37f1c13d8 |
|
25-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure we correctly treat __is_convertible_to as an unevaluated context. PR11833. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
5e9392ba18f5925e26cc5714d1412eda0d219826 |
|
03-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for the __is_final type trait, to determine whether a class is marked 'final', from Alberto Ganesh Barbati! Fixes PR11462. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
762bb9d0ad20320b9f97a841dce57ba5e8e48b07 |
|
14-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update all tests other than Driver/std.cpp to use -std=c++11 rather than -std=c++0x. Patch by Ahmed Charles! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
d41679d6881d2b424d8b3600fc774308087735a7 |
|
12-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach __has_nothrow_assign not to complain about access (GCC and EDG ignore access entirely for it) and not to crash on assignment operator templates. Fixes PR11110. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
e11c38d05c80ddd06042d20de79dd31fc9e8141e |
|
01-May-2011 |
Francois Pichet <pichet2000@gmail.com> |
Add a triple to this test, otherwise it fails under MSVC because wchar_t is unsigned with the i686-pc-win32 triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
25df423cfc6689cf21d51a66af84ea1e70d489df |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Make type-traits reflect that Clang's vectors act like scalar types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
018a088b3b30e500efa9173f7cd4b1b1f6a065a8 |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the type-trait like APIs on the AST to only check for incomplete types after looking through arrays. Arrays with an unknown bound seem to be specifically allowed in the library type traits in C++0x, and GCC's builtin __is_trivial returns 'true' for the type 'int[]'. Now Clang agrees with GCC about __is_trivial here. Also hardens these methods against dependent types by just returning false. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
21ff2e516b0e0bc8c1dbf965cb3d44bac3c64330 |
|
28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
Implementation of Embarcadero array type traits Patch authored by John Wiegley. These are array type traits used for parsing code that employs certain features of the Embarcadero C++ compiler: __array_rank(T) and __array_extent(T, Dim). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
4d6e5a22d9481bb83b82d911727540096d171c0b |
|
24-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin tracking trivialness of move constructors and move assignment operators in C++ record declarations. This patch starts off by updating a bunch of the standard citations to refer to the draft 0x standard so that the semantics intended for move varianst is clear. Where necessary these are duplicated so they'll be available in doxygen. It adds bit fields to keep track of the state for the move constructs, and updates all the code necessary to track this state (I think) as members are declared for a class. It also wires the state into the various trait-like accessors in the AST's API, and tests that the type trait expressions now behave correctly in the presence of move constructors and move assignment operators. This isn't complete yet due to these glaring FIXMEs: 1) No synthesis of implicit move constructors or assignment operators. 2) I don't think we correctly enforce the new logic for both copy and move trivial checks: that the *selected* copy/move constructor/operator is trivial. Currently this requires *all* of them to be trivial. 3) Some of the trait logic needs to be folded into the fine-grained trivial bits to more closely match the wording of the standard. For example, many of the places we currently set a bit to track POD-ness could be removed by querying other more fine grained traits on demand. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
c69f636a32485b64d571490e3980463dd7752aaa |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Flesh out these tests just a tad more. This provides targeted 'DerivesHasFoo' types for various non-POD constructs in the base class. Only __is_pod and __is_trivial are wired up to these, not sure how much more of this type of exhaustive testing is really interesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
43a56a0622917ae996244d76d5f20c4d31cc119c |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Test POD and trivial type traits given a class derived from a generic non-POD type. It might be nicer to have a Derives* variant for each of HasCons, HasCopy, etc. Then we could test each of those and also test the __has_* traits. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
34eaaa523c3820dd32bcd9530148e76e87dcfa90 |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Use a more precise name for some of the types here, and re-group several of the tests using those types to have a (hopefully) more logical ordering now that doing so doesn't cause unreadable deltas of counters changing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
e567e837feee4a05d0d8e02049421e286ea7f70d |
|
23-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Mechanical change moving all of the test statements away from a pattern that requires needless noise in every patch (due to numbers changing) or poorly grouped test cases in order to have strictly increasing numbers. This will make my subsequent patches much less ugly. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
d89d30fdd9e3061fb100fb8f976aab5c6cf2c901 |
|
28-Jan-2011 |
John McCall <rjmccall@apple.com> |
Fix some corner cases in the __is_base_of logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
b608b987718c6d841115464f79ab2d1820a63e17 |
|
28-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Give OpaqueValueExpr a source location, because its source location might be queried in places where we absolutely require a valid location (e.g., for template instantiation). Fixes some major brokenness in the use of __is_convertible_to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
1eee5dc0465c0ab4810e21d365e881152d7f53c0 |
|
27-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the evaluation of the __is_convertible_to trait to translate access control errors into SFINAE errors, so that the trait provides enough support to implement the C++0x std::is_convertible type trait. To get there, the SFINAETrap now knows how to set up a SFINAE context independent of any template instantiations or template argument deduction steps, and (separately) can set a Sema flag to translate access control errors into SFINAE errors. The latter can also be useful if we decide that access control errors during template argument deduction should cause substitution failure (rather than a hard error) as has been proposed for C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
9f3611365d0f2297a910cf246e056708726ed10a |
|
27-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the Microsoft __is_convertible_to type trait, modeling the semantics after the C++0x is_convertible type trait. This implementation is not 100% complete, because it allows access errors to be hard errors (rather than just evaluating false). Original patch by Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
6ad6f2848d7652ab2991286eb48be440d3493b28 |
|
07-Dec-2010 |
Francois Pichet <pichet2000@gmail.com> |
Type traits intrinsic implementation: __is_base_of(T, U) New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
2cf9d656f6283f2a8be0549da110d7cfbb1ea4b2 |
|
28-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Centralize the management of CXXRecordDecl::DefinitionData's Empty bit in CXXRecordDecl itself. Yes, this is also part of <rdar://problem/8459981>. This reinstates r114924, with one crucial bug fix: we were ignoring the implicit fields created by anonymous structs/unions when updating the bits in CXXRecordDecl, which means that a class/struct containing only an anonymous class/struct would be considered "empty". Hilarity follows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
f8aca8664512c80a018eb4a4a93c61ad6793abcd |
|
15-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix destructor and assignment operator lookup in the has_nothrow traits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
08295a592d7e54e6bea00daeb2abe7ac79a3aaba |
|
14-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Don't crash when using type traits on a class with a constructor template. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
751025d5d174ab75dc3788211581d9fbe6224841 |
|
14-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Remove CXXRecordDecl::getDefaultConstructor(), an inherently unsafe function due to lazy declaration of default constructors. Now that __has_nothrow_constructor doesn't use it anymore, part of PR8101 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
5f4e8999aa30e2986e99fbfa4c43e61e99a18687 |
|
13-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Have __has_nothrow_copy use Sema's lookup routines. This fixes the problem with not finding implicitly declared copy constructors, part of PR8107. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
607a1788d9529c8e8494ac528764aa2c678a1a97 |
|
08-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow (cv) void and incomplete arrays to be passed to the type traits. Fixes PR8110, and thus PR8109, PR8097, and parts of PR8101, PR8105 and PR8107. Only a few traits have tests for incomplete arrays, since I'm not yet clear what the result for them should be; Howards wants to file a DR to change the standard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
d4b25cbde13fc973673234f26de48c940723e679 |
|
03-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement __has_virtual_destructor. Patch by Steven Watanabe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
c238f09a268cd87a2568f6c97181252687ae07b1 |
|
31-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement the __has_nothrow trait family, by Steven Watanabe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 |
|
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
51f940457ab20f82c62c2093389763bb9f5187eb |
|
03-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
When instantiating a class, if a base specifier is not dependent we still need to copy its attributes down to the instantiated class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
1d954f6a0057cb55a3a5d483904a3c57d03c996f |
|
15-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Implement __is_empty. Patch by Sean Hunt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|
d7d5f0223bd30dfd618762349c6209dd1d5ea3e6 |
|
24-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename clang to clang-cc. Tests and drivers updated, still need to shuffle dirs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/type-traits.cpp
|
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/test/SemaCXX/type-traits.cpp
|