|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 109865 | 
| | 
| 
| 
| | llvm-svn: 109396 | 
| | 
| 
| 
| 
| 
| | since we aren't going to be calling them ever.
llvm-svn: 109377 | 
| | 
| 
| 
| | llvm-svn: 109358 | 
| | 
| 
| 
| 
| 
| | dependent size.
llvm-svn: 109356 | 
| | 
| 
| 
| 
| 
| | Diagnose attempts to do this under the GNU or fragile NeXT runtimes.
llvm-svn: 109298 | 
| | 
| 
| 
| | llvm-svn: 108807 | 
| | 
| 
| 
| 
| 
| 
| 
| | typedefs won't have the same canonical declaration (since they are
distinct), so we need to check for this case specifically. Fixes
<rdar://problem/8018262>.
llvm-svn: 107833 | 
| | 
| 
| 
| 
| 
| 
| 
| | of getBody() when we are just checking the existence of a body, to avoid de-serialization of the body from PCH.
Makes de-serialization of the function body even more "lazier".
llvm-svn: 107768 | 
| | 
| 
| 
| 
| 
| 
| 
| | declarations when implicitly declaring the default constructor, copy
constructor, destructor, and copy-assignment operators of a
class. Argiris fixed the underlying problem in r107596.
llvm-svn: 107681 | 
| | 
| 
| 
| | llvm-svn: 107573 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | declarations for implicit default constructors, copy constructors,
copy assignment operators, and destructors. On a "simple" translation
unit that includes a bunch of C++ standard library headers, we
generate relatively few of these implicit declarations now:
  4/159 implicit default constructors created
  18/236 implicit copy constructors created
  70/241 implicit copy assignment operators created
  0/173 implicit destructors created
And, on this translation unit, this optimization doesn't really
provide any benefit. I'll do some more performance measurements soon,
but this completes the implementation work for <rdar://problem/8151045>.
llvm-svn: 107551 | 
| | 
| 
| 
| | llvm-svn: 107543 | 
| | 
| 
| 
| | llvm-svn: 107521 | 
| | 
| 
| 
| | llvm-svn: 107510 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | allows Sema some limited access to the current scope, which we only
use in one way: when Sema is performing some kind of declaration that
is not directly driven by the parser (e.g., due to template
instantiatio or lazy declaration of a member), we can find the Scope
associated with a DeclContext, if that DeclContext is still in the
process of being parsed. 
Use this to make the implicit declaration of special member functions
in a C++ class more "scope-less", rather than using the NULL Scope hack.
llvm-svn: 107491 | 
| | 
| 
| 
| 
| 
| | calls use that routine
llvm-svn: 107444 | 
| | 
| 
| 
| | llvm-svn: 107437 | 
| | 
| 
| 
| 
| 
| | routine; no functionality change.
llvm-svn: 107434 | 
| | 
| 
| 
| | llvm-svn: 107429 | 
| | 
| 
| 
| 
| 
| | method. No functionality change.
llvm-svn: 107415 | 
| | 
| 
| 
| 
| 
| 
| | and multi-dimensional array fields. Fixes several bugs found by
inspection.
llvm-svn: 107411 | 
| | 
| 
| 
| 
| 
| 
| | separate function. Aside from making the loops infinitely faster, no
functionality change.
llvm-svn: 107407 | 
| | 
| 
| 
| 
| 
| | copy-assignment operator.
llvm-svn: 107406 | 
| | 
| 
| 
| 
| 
| | into a separate routine. No functionality change.
llvm-svn: 107402 | 
| | 
| 
| 
| | llvm-svn: 107398 | 
| | 
| 
| 
| 
| 
| | CXXRecordDecl::getDestructor(); no functionality change.
llvm-svn: 107394 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | aren't dropping all exception specifications on destructors, the
exception specifications on implicitly-declared destructors were
detected as being wrong (which they were). 
Introduce logic to provide a proper exception-specification for
implicitly-declared destructors. This also fixes PR6972.
Note that the other implicitly-declared special member functions also
need to get exception-specifications. I'll deal with that in a
subsequent commit.
llvm-svn: 107385 | 
| | 
| 
| 
| | llvm-svn: 107378 | 
| | 
| 
| 
| 
| 
| | exception specification. Fixes PR7526.
llvm-svn: 107374 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Previously we relied on the presence of a member which needs no initialization
to prevent us from creating an additional initialization of the outer anonymous
union field. We have already correctly marked that field as initialized by the
member of the union (repeatedly due to the original bug this patch fixes) so we
simply need to bail out.
llvm-svn: 107242 | 
| | 
| 
| 
| 
| 
| 
| | else. Get the build bots happy while I debug. Very sorry for the delay fixing
this...
llvm-svn: 107239 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | anonymous union under the presumption that they didn't do anything. While this
is true, our checks for redundant initialization of an anonymous union still
fire when these overlap with explicit user initialization. A cleaner approach
is to avoid initializing multiple members of a union altogether, but this still
is in a rather fuzzy are especially when C++0x allows non-POD types into
unions.
llvm-svn: 107235 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | initialization. I tried several ideas but couldn't come up with a test case for
this that didn't rely on a Clang bug to report a diagnostic after template
instantiation of the constructor due to the implicit initializers. Suggestions
welcome. This fixes the source location aspect of PR7402.
llvm-svn: 107226 | 
| | 
| 
| 
| 
| 
| 
| | looking for, reset the name within the LookupResult structure in
addition to clearing out the results. Fixes PR7508.
llvm-svn: 107197 | 
| | 
| 
| 
| | llvm-svn: 107191 | 
| | 
| 
| 
| 
| 
| 
| 
| | "std", with a warning, to improve GCC compatibility. Fixes PR7517.
As a drive-by, add typo correction for using directives.
llvm-svn: 107172 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | attribute as part of the calculation. Sema::MarkDeclReferenced(), and
a few other places, want only to consider the "used" bit to determine,
e.g, whether to perform template instantiation. Fixes a linkage issue
with Boost.Serialization.
llvm-svn: 106252 | 
| | 
| 
| 
| 
| 
| | decl. and one ddefined in darwin header file.
llvm-svn: 106107 | 
| | 
| 
| 
| 
| 
| 
| 
| | virtual base class, but the class still has dependent base classes,
then don't diagnose the failed match as an error: the right base class
might magically appear. Fixes PR7259.
llvm-svn: 106103 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | introduced by using decls are hidden even if their template parameter lists
or return types differ from the "overriding" declaration.
Propagate using shadow declarations around more effectively when looking up
template-ids.  Reperform lookup for template-ids in member expressions so that
access control is properly set up.
Fix some number of latent bugs involving template-ids with totally invalid
base types.  You can only actually get these with a scope specifier, since
otherwise the template-id won't parse as a template-id.
Fixes PR7384.
llvm-svn: 106093 | 
| | 
| 
| 
| | llvm-svn: 106070 | 
| | 
| 
| 
| 
| 
| 
| 
| | objective-c++ class objects which have GC'able objc object
pointers and need to use ObjC's objc_memmove_collectable
API (radar 8070772). 
llvm-svn: 106061 | 
| | 
| 
| 
| 
| 
| 
| 
| | Stmt* such as those which occur in ?: . Fixes PR7378.
Also, generally whip the code into shape fixing several coding style violations.
llvm-svn: 105992 | 
| | 
| 
| 
| | llvm-svn: 105525 | 
| | 
| 
| 
| 
| 
| | This is never null, but the associated type might be.
llvm-svn: 105503 | 
| | 
| 
| 
| 
| 
| 
| | Allows this check to work properly for instantiated fields and removes
an unnecessary GetTypeForDeclarator call.
llvm-svn: 105463 | 
| | 
| 
| 
| | llvm-svn: 105374 | 
| | 
| 
| 
| 
| 
| | lookup context, not the direct semantic context.  Fixes PR7230.
llvm-svn: 104917 | 
| | 
| 
| 
| 
| 
| | by-value. We now only prepend a space if it is needed. 
llvm-svn: 104889 |