6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.h
|
8441fffda14c5d9ac704f24173fcb117d4999a8e |
|
23-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add constness for NestedNameSpecifier::Create parameter git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
be2fa7ebf01259b63dc52fe46c8d101c18e72269 |
|
18-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Mark unimplemented copy constructors and copy assignment operators with LLVM_DELETED_FUNCTION. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
9c849b03a62fd1864d62c382c916cf9dc17be335 |
|
18-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: * Escaped "::" where needed to prevent Doxygen trying to make links; * Updated one mention of C++0x to refer to C++11; * Fixed a \brief summary to make it somewhat concise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
aa49a7d70e58dac2aeb40664ba16d2ea571b8c95 |
|
09-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[AST/etc] Mark {getSourceRange(),getStartLoc(),getEndLoc()} as LLVM_READONLY. - The theory here is that we have these functions sprinkled in all over the place. This should allow the optimizer to at least realize it can still do load CSE across these calls. - I blindly marked all instances as such, even though the optimizer can infer this attribute in some instances (some of the inline ones) as that was easier and also, when given the choice between thinking and not thinking, I prefer the latter. You might think this is mere frivolity, but actually this is good for a .7 - 1.1% speedup on 403.gcc/combine.c, JSC/Interpreter.cpp, OGF/NSBezierPath-OAExtensions.m. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
42f42c8c58fd1b70ed1e84b426312581e656620b |
|
09-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[AST] NestedNameSpecifier's ctor/dtor are trivial and should be inlined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.h
|
42d6d0c91ab089cb252ab2f91c16d4557f458a2c |
|
04-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Support decltype in nested-name-specifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.h
|
db999aad8a1b9dc265b2e627be334be6580a86a3 |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove some now-redundant forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
8cc488fefb2fb04bc8d5398da29f0182f97934cf |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
add raw_ostream and Twine to LLVM.h, eliminating a ton of llvm:: qualifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
9dc71d2fddcd283e07d45f3894c8559e2f7dd9a7 |
|
06-Jul-2011 |
John McCall <rjmccall@apple.com> |
Fixed enum types can be complete without actually being valid to use as scope specifiers; diagnose the attempt, rather than letting it go to an assert. The rest of PR10264. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
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/NestedNameSpecifier.h
|
5f791bb44417ecc201ed57a85d0fe02001d8a615 |
|
01-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Refactor the construction of nested-name-specifiers with source-location information into a NestedNameSpecifierLocBuilder class, which lives within the AST library and centralize all knowledge of the format of nested-name-specifier location information here. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
00cf3cc2718671aa48e8da264a523b0058a8591e |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Push nested-name-specifier source location information into DependentScopeDeclRefExpr. Plus, give NestedNameSpecifierLoc == and != operators, since we're going to need 'em elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
c22b5fff39a7520207f165fb16a27a34b944bd9c |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Use NestedNameSpecifierLoc within out-of-line variables, function, and tag definitions. Also, add support for template instantiation of NestedNameSpecifierLocs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
dc355713be51fcb4ee52d9fd6b4548ceff47fadf |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Update UsingDecl, UnresolvedUsingTypenameDecl, and UnresolvedUsingValueDecl to use NestedNameSpecifierLoc rather than the extremely-lossy NestedNameSpecifier/SourceRange pair it used to use, improving source-location information. Various infrastructure updates to support NestedNameSpecifierLoc: - AST/PCH (de-)serialization - Recursive AST visitor - libclang traversal (including the first tests of this functionality) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
c34348a7ef1a6b3f92a644a227953800cd1f9947 |
|
24-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Retain complete source-location information for C++ nested-name-specifiers throughout the parser, and provide a new class (NestedNameSpecifierLoc) that contains a nested-name-specifier along with its type-source information. Right now, this information is completely useless, because we don't actually store the source-location information anywhere in the AST. Call this Step 1/N. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
14aba76042e041b2c5e439bf4ae353a0a3c7fd73 |
|
24-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach NestedNameSpecifier to keep track of namespace aliases the same way it keeps track of namespaces. Previously, we would map from the namespace alias to its underlying namespace when building a nested-name-specifier, losing source information in the process. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.h
|
37db4db11b95e32d4ba205d9246c940025666f97 |
|
25-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Kill off the last Destroy method in the AST library git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.h
|
2700dcde044893642b9b77638e052aa90be7cd51 |
|
03-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Add a wicked little test-case that illustrates what we have to deal with to properly support member access expressions in templates. This test is XFAIL'd, because we get it completely wrong, but I've made the minimal changes to the representation to at least avoid a crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
dacd434c49658286c380c7b4c357d76d53cb4aa1 |
|
26-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve diagnostics and recovery when the nested-name-specifier of a qualified name does not actually refer into a class/class template/class template partial specialization. Improve printing of nested-name-specifiers to eliminate redudant qualifiers. Also, make it possible to output a nested-name-specifier through a DiagnosticBuilder, although there are relatively few places that will use this leeway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.h
|
9bde77309fd2f9f7a53446e374472c48c81f5182 |
|
31-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Some cleanup and renaming. No functionality change git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.h
|
f1e5a9591317d20161aa0638ff36944ae8b89360 |
|
30-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Remove a trivial FIXME git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.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/NestedNameSpecifier.h
|