- Mar 19, 2009
-
-
Douglas Gregor authored
dependent qualified-ids such as Fibonacci<N - 1>::value where N is a template parameter. These references are "unresolved" because the name is dependent and, therefore, cannot be resolved to a declaration node (as we would do for a DeclRefExpr or QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to DeclRefExprs, QualifiedDeclRefExprs, etc. Also, be a bit more careful about keeping only a single set of specializations for a class template, and instantiating from the definition of that template rather than a previous declaration. In general, we need a better solution for this for all TagDecls, because it's too easy to accidentally look at a declaration that isn't the definition. We can now process a simple Fibonacci computation described as a template metaprogram. llvm-svn: 67308
-
Dale Johannesen authored
llvm-svn: 67307
-
Dale Johannesen authored
and was deleting Instructions without clearing the corresponding map entry. This led to nondeterministic behavior if the same address got allocated to another Instruction within a short time. llvm-svn: 67306
-
Ted Kremenek authored
Fix regression in 'tblgen -gen-clang-diags-defs': Emit the diagnostic kind instead of "DIAGNOSTICCONTROLLED". llvm-svn: 67305
-
Chris Lattner authored
is the first in its block. This is PR3842. llvm-svn: 67304
-
Duncan Sands authored
llvm-svn: 67302
-
Daniel Dunbar authored
- PR3818. llvm-svn: 67297
-
Daniel Dunbar authored
llvm-svn: 67296
-
Daniel Dunbar authored
llvm-svn: 67295
-
Daniel Dunbar authored
diagnostic (to suppress more generic unused warning). llvm-svn: 67294
-
Daniel Dunbar authored
are forwarded to GCC. - The later is unfortunate, as it prevents us from generally warning about anything interesting on platforms that use a generic toolchain. However, we can't do much better without significantly complicating things, and generally we should have proper tool chain definitions. llvm-svn: 67293
-
Daniel Dunbar authored
- Make InputInfo a variant of filename, pipe, input argument, nothing. - Leave a FIXME in InputInfo that this should be revisited. llvm-svn: 67292
-
Daniel Dunbar authored
was hoping to clean up in the rewrite, but I don't see it yet. llvm-svn: 67291
-
Chris Lattner authored
llvm-svn: 67290
-
Chris Lattner authored
llvm-svn: 67289
-
Nick Lewycky authored
either. llvm-svn: 67288
-
Nick Lewycky authored
llvm-svn: 67287
-
Nate Begeman authored
in selectiondag patterns. This is required for the upcoming shuffle_vector rewrite, and as it turns out, cleans up a hack in the Alpha instruction info. llvm-svn: 67286
-
Chris Lattner authored
llvm-svn: 67285
-
Douglas Gregor authored
struct N::M::foo llvm-svn: 67284
-
Douglas Gregor authored
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. llvm-svn: 67283
-
Bruno Cardoso Lopes authored
llvm-svn: 67280
-
Ted Kremenek authored
llvm-svn: 67279
-
Ted Kremenek authored
llvm-svn: 67269
-
Douglas Gregor authored
specialization names. This way, we keep track of sugared types like std::vector<Real> I believe we are now using QualifiedNameTypes everywhere we can. Next step: QualifiedDeclRefExprs. llvm-svn: 67268
-
Devang Patel authored
llvm-svn: 67267
-
Ted Kremenek authored
llvm-svn: 67266
-
Douglas Gregor authored
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. llvm-svn: 67265
-
Ted Kremenek authored
llvm-svn: 67260
-
Gabor Greif authored
Use the instantiated expressions to build the ConditionalOperator. This addresses the second part of review feedback. llvm-svn: 67259
-
Gabor Greif authored
that does a downcast. It is named takeAs<T>(). The plain-pointer version is also added, but that side seems to be seriously bitrotten. llvm-svn: 67258
-
Daniel Dunbar authored
case. llvm-svn: 67257
-
Daniel Dunbar authored
PCH support). llvm-svn: 67256
-
Daniel Dunbar authored
driver is functional without them. llvm-svn: 67254
-
Daniel Dunbar authored
sometimes leaves around. llvm-svn: 67253
-
- Mar 18, 2009
-
-
Mike Stump authored
llvm-svn: 67252
-
Daniel Dunbar authored
- Hopefully Chris can pardon one executable test. llvm-svn: 67251
-
Daniel Dunbar authored
llvm-svn: 67250
-
Fariborz Jahanian authored
whose sema decl is at the translation unit. llvm-svn: 67249
-
Daniel Dunbar authored
llvm-svn: 67248
-