d6537015745128064dc12fcc06af65372dfd5da9 |
|
15-Nov-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Per [basic.lookup.classref]p3, in an expression of the form p->~type-name, the type-name is looked up in the context of the complete postfix-expression. Don't forget to pass the scope into this lookup when the type-name is a template-id; it might name an alias template which can't be found within the class itself. Bug spotted by Johannes Schaub on #llvm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
91ec7894ec186dd36f509682f00486c98d8228ed |
|
16-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Support decltype in pseudo destructors and dependent destructor calls. Reviewed by Eli Friedman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
6b18e740495b67b439fa366367242110365cc4d9 |
|
09-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't crash when transforming an ill-formed pseudo-destructor expression. Fixes PR11339. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
7ec1873d694cf870264694d2b61219a03492bc30 |
|
04-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
When clearing a LookupResult structure, clear out the naming class, too. Fixes PR7900. While I'm in this area, improve the diagnostic when the type being destroyed doesn't match either of the types we found. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
81e317a444dd756a1cafe94031e4b3f3c138dac6 |
|
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Allow pseudo-destructors to be called on qualified pointers. Patch by Troy Straszheim! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
77549080fb7b9af31606b3c1b4830a94429fb1fd |
|
24-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
ActOnPseudoDestructorExpr now performs all semantic analysis for pseudo-destructor expressions, and builds the CXXPseudoDestructorExpr node directly. Currently, this only affects pseudo-destructor expressions when they are parsed, but not after template instantiation. That's coming next... Improve parsing of pseudo-destructor-names. When parsing the nested-name-specifier and we hit the sequence of tokens X :: ~, query the actual module to determine whether X is a type-name (in which case the X :: is part of the pseudo-destructor-name but not the nested-name-specifier) or not (in which case the X :: is part of the nested-name-specifier). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
93649fdc5e0c46e26bcba06ad39aa80196d3df27 |
|
23-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement crazy destructor name lookup semantics differently in C++98/03 and C++0x, since the '0x semantics break valid C++98/03 code. This new mess is tracked by core issue 399, which is still unresolved. Fixes PR6358 and PR6359. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
b10cd04880672103660e5844e51ee91af7361a20 |
|
21-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement support for parsing pseudo-destructor expression with a nested-name-specifier, e.g., typedef int Int; int *p; p->Int::~Int(); This weakens the invariant that the only types in nested-name-specifiers are tag types (restricted to class types in C++98/03). However, we weaken this invariant as little as possible, accepting arbitrary types in nested-name-specifiers only when we're in a member access expression that looks like a pseudo-destructor expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
5e895a87d001ea2e97f5201d22cc5241992ca5a2 |
|
21-Feb-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Commiting a revert from dgregor of a bit of destructor logic until we can figure out how not to break lots of code using this. See PR6358 and PR6359 for motivating examples. FIXME's left in the code and the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
124b878dba5007df0a268ea128a6ad8dc5dd2c5e |
|
16-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve parsing and instantiation of destructor names, so that we can now cope with the destruction of types named as dependent templates, e.g., y->template Y<T>::~Y() Nominally, we implement C++0x [basic.lookup.qual]p6. However, we don't follow the letter of the standard here because that would fail to parse template<typename T, typename U> X0<T, U>::~X0() { } properly. The problem is captured in core issue 339, which gives some (but not enough!) guidance. I expect to revisit this code when the resolution of 339 is clear, and/or we start capturing better source information for DeclarationNames. Fixes PR6152. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.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/pseudo-destructors.cpp
|
f6e6fc801c700c7b8ac202ddbe550d9843a816fc |
|
20-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement C++ [basic.lookup.classref]p3, which states how the type name 'T' is looked up in the expression t.~T() Previously, we weren't looking into the type of "t", and therefore would fail when T actually referred to an injected-class-name. Fixes PR5530. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
4fcfde4d5c8f25e40720972a5543d538a0dcb220 |
|
08-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Eliminate &&s in tests. - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
a78c5c34fbd20fde02261c3f3e21933cd58fcc04 |
|
04-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
If a destructor is referenced or a pseudo-destructor expression is formed without a trailing '(', diagnose the error (these expressions must be immediately called), emit a fix-it hint, and fix the code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
a71d819bb8f50c28938db0f2867d3fb6e2ce5910 |
|
04-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement AST, semantics, and CodeGen for C++ pseudo-destructor expressions, e.g., p->~T() when p is a pointer to a scalar type. We don't currently diagnose errors when pseudo-destructor expressions are used in any way other than by forming a call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|
2cf738f1944d1cc724ea7561b84440a3a1059e45 |
|
26-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
More support for pseudo dtors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/pseudo-destructors.cpp
|