- Dec 22, 2010
-
-
Douglas Gregor authored
deduction. Unify all of the looping over template arguments for deduction purposes into a single place, where argument pack expansion occurs; this is also the hook for deducing from pack expansions, which itself is not yet implemented. For now, at least we can handle a basic "count" metafunction written with variadics. See the new test for the formulation that works. llvm-svn: 122418
-
Zhongxing Xu authored
the location (l-value) to it. llvm-svn: 122396
-
Abramo Bagnara authored
llvm-svn: 122394
-
Zhongxing Xu authored
llvm-svn: 122393
-
Zhongxing Xu authored
llvm-svn: 122390
-
Zhongxing Xu authored
This change is necessary when the variable is a const reference and we need the l-value of the construct expr. After that, when binding the variable, recover the lazy compound value when the variable is not a reference. In Environment, use the value of a no-op cast expression when it has one. Otherwise, blast-through it. llvm-svn: 122388
-
Francois Pichet authored
Previously designated anonymous fields were found via name lookup. This redesign uses the fact that an IndirectFieldDecl declaration will always follow an anonymous implicit field to remove the special case of name lookup. llvm-svn: 122387
-
- Dec 21, 2010
-
-
Douglas Gregor authored
to cope with parameter packs. This is a band-aid I will be revisiting this section when I implement declaration matching semantics for variadic templates. llvm-svn: 122369
-
Douglas Gregor authored
llvm-svn: 122367
-
Douglas Gregor authored
llvm-svn: 122365
-
Douglas Gregor authored
conversions, make sure that the (possibly) derived type is complete before looking for base classes. Finishes the fix for PR8801. llvm-svn: 122363
-
Douglas Gregor authored
declaration, also look for an instantiation of its previous declarations. Fixes PR8801. llvm-svn: 122361
-
Douglas Gregor authored
inconsistent with the type that the builtin *should* have, forget about the builtin altogether: we don't want subsequence analyses, CodeGen, etc., to think that we have a proper builtin function. C is protected from errors here because it allows one to use a library builtin without having a declaration, and detects inconsistent (re-)declarations of builtins during declaration merging. C++ was unprotected, and therefore would crash. Fixes PR8839. llvm-svn: 122351
-
Douglas Gregor authored
take into account the region of interest. Otherwise, we may fail to traverse some important preprocessed entity cursors. Fixes <rdar://problem/8554072>. llvm-svn: 122350
-
Douglas Gregor authored
llvm-svn: 122348
-
Douglas Gregor authored
classes, categories, protocols, and class extensions, where the methods and properties of these entities would be inserted into the DeclContext in an ordering that doesn't necessarily reflect source order. The culprits were Sema::ActOnMethodDeclaration(), which did not perform the insertion of the just-created method declaration into the DeclContext for these Objective-C entities, and Sema::ActOnAtEnd(), which inserted all method declarations at the *end* of the DeclContext. With this fix in hand, clean up the code-completion actions for property setters/getters that worked around this brokenness in the AST. Fixes <rdar://problem/8062781>, where this problem manifested as poor token-annotation information, but this would have struck again in many other places. llvm-svn: 122347
-
Michael J. Spencer authored
llvm-svn: 122340
-
Michael J. Spencer authored
llvm-svn: 122339
-
Douglas Gregor authored
information caused token-annotation to fail in funny ways. Fixes <rdar://problem/8595386>. llvm-svn: 122338
-
Douglas Gregor authored
llvm-svn: 122335
-
Douglas Gregor authored
llvm-svn: 122325
-
Douglas Gregor authored
clang_getCursorLexicalParent() to cope with class and function templates, along with the parent of the translation unit. Fixes PR8761 and PR8766. llvm-svn: 122324
-
Douglas Gregor authored
looking in is complete. Fixes PR8756. llvm-svn: 122323
-
Douglas Gregor authored
checking trivial comparisons. Fixes PR8795. llvm-svn: 122322
-
Douglas Gregor authored
llvm-svn: 122318
-
Douglas Gregor authored
llvm-svn: 122317
-
Douglas Gregor authored
llvm-svn: 122315
-
Francois Pichet authored
Fix PR8832. llvm-svn: 122311
-
Chris Lattner authored
llvm-svn: 122309
-
Douglas Gregor authored
in an exception specification. llvm-svn: 122297
-
John McCall authored
Apply the noreturn attribute while creating a builtin function's type. Remove the getNoReturnType() API. llvm-svn: 122295
-
Fariborz Jahanian authored
unknown type and there is a possibility that at runtime method is resolved to a deprecated or unavailable method. Addreses // rdar://8769853 llvm-svn: 122294
-
Douglas Gregor authored
specifications. We can't yet instantiate them, however, since I tripped over PR8835. llvm-svn: 122292
-
Douglas Gregor authored
lists, so that all such transformations go through a single, iterator-based transformation function. This is the only place where we need to implement the logic for transforming pack expansions whose pattern is a template argument. Unfortunately, the new cases this refactoring brings into the fold can't be meaningfully tested yet. We need template argument deduction to work well enough for variadic function templates first. llvm-svn: 122289
-
Douglas Gregor authored
shouldWalkTypesOfTypeLocs() that determines whether it should walk the Types within TypeLocs. This walk is redundant, but perhaps required for some clients. Disabling this redundant walk in the unexpanded parameter pack finder produces better results, because we get parameter packs with source location info *unless* such source location information isn't available. llvm-svn: 122287
-
- Dec 20, 2010
-
-
Douglas Gregor authored
the first qualifier in scope. We can't adequately test this test, unfortunately. llvm-svn: 122283
-
Douglas Gregor authored
Test template instantiation of pack expansions where the parameter pack is in a nested-name-specifier llvm-svn: 122282
-
Rafael Espindola authored
don't warn if an argument is not used because it is shadowed by a subsequent argument. llvm-svn: 122281
-
Douglas Gregor authored
getting extra "<>" delimiters around template argument packs. llvm-svn: 122280
-
Douglas Gregor authored
whose patterns are template arguments. We can now instantiate, e.g., typedef tuple<pair<OuterTypes, InnerTypes>...> type; where OuterTypes and InnerTypes are template type parameter packs. There is a horrible inefficiency in TemplateArgumentLoc::getPackExpansionPattern(), where we need to create copies of TypeLoc data because our interfaces traffic in TypeSourceInfo pointers where they should traffic in TypeLocs instead. I've isolated in efficiency in this one routine; once we refactor our interfaces to traffic in TypeLocs, we can eliminate it. llvm-svn: 122278
-