summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Move declaration of a class's implicit copy constructor into aDouglas Gregor2010-07-012-86/+111
| | | | | | | separate function. Aside from making the loops infinitely faster, no functionality change. llvm-svn: 107407
* Provide an exception-specification for an implicitly-declaredDouglas Gregor2010-07-012-2/+104
| | | | | | copy-assignment operator. llvm-svn: 107406
* Move the implicit declaration of a class's copy-assignment operatorDouglas Gregor2010-07-012-99/+114
| | | | | | into a separate routine. No functionality change. llvm-svn: 107402
* Make loops infinitely faster. No functionality change.Douglas Gregor2010-07-011-5/+7
| | | | llvm-svn: 107398
* Remove unnecessary ASTContext parameter fromDouglas Gregor2010-07-0114-32/+31
| | | | | | CXXRecordDecl::getDestructor(); no functionality change. llvm-svn: 107394
* ExplodedGraph never uses ASTContext, remove it.Zhongxing Xu2010-07-012-4/+4
| | | | llvm-svn: 107388
* fix rdar://8147692 - yet another crash due to my abi work.Chris Lattner2010-07-013-15/+41
| | | | llvm-svn: 107387
* Reinstate fix for PR7526, which was failing because, now that weDouglas Gregor2010-07-013-17/+116
| | | | | | | | | | | | | | | 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
* When performing copy initialization via user-defined conversions,Douglas Gregor2010-07-011-13/+3
| | | | | | don't allow two user-defined conversions. Fixes PR6595 (again). llvm-svn: 107379
* Revert r107374, which broke bootstrap.Douglas Gregor2010-07-013-18/+15
| | | | llvm-svn: 107378
* When building the type of a destructor, make sure to keep theDouglas Gregor2010-07-013-15/+18
| | | | | | exception specification. Fixes PR7526. llvm-svn: 107374
* Extend the "cannot convert from base class pointer to derived classDouglas Gregor2010-07-011-6/+14
| | | | | | pointer" diagnostic to handle references, too. llvm-svn: 107372
* Driver/IRgen: Add support for -momit-leaf-frame-pointer.Daniel Dunbar2010-07-013-1/+23
| | | | llvm-svn: 107367
* Be a bit more careful with undefined CXXRecordDecls. FixesDouglas Gregor2010-07-012-6/+8
| | | | | | rdar://problem/8124080 and PR7118. llvm-svn: 107358
* Revert "IRgen: Make sure any prolog instructions get debug info.", the lexicalDaniel Dunbar2010-07-011-1/+0
| | | | | | | scope hasn't been set up yet so this isn't valid. It was just a cleanup to the IR, so I'm going to ignore it for now. llvm-svn: 107356
* Implement C++ DR481, which clarifies that the scope of templateDouglas Gregor2010-07-013-165/+109
| | | | | | | | | | | | | | | | | parameters starts at the end of the template-parameter rather than at the point where the template parameter name is encounted. For example, given: typedef unsigned char T; template<typename T = T> struct X0 { }; The "T" in the default argument refers to the typedef of "unsigned char", rather than referring to the newly-introduced template type parameter 'T'. Addresses <rdar://problem/8122812>. llvm-svn: 107354
* Driver/Darwin: Add one -L for the DarwinClang toolchain to point into the gccDaniel Dunbar2010-06-301-0/+27
| | | | | | | library directory, as we still rely on a few libraries that are hiding there (in particular libstdc++.dylib). llvm-svn: 107353
* Improve diagnostic when we fail to pick an overload because it wouldDouglas Gregor2010-06-301-0/+32
| | | | | | require a base-to-derived pointer conversion. llvm-svn: 107349
* Fix vector literal/cast confusion - bug 6895.John Thompson2010-06-301-2/+13
| | | | llvm-svn: 107347
* Move lib/Runtime to runtime/, and build after everything else.Daniel Dunbar2010-06-302-104/+1
| | | | llvm-svn: 107327
* IRgen: Fix debug info regression in r106970; when we eliminate the return valueDaniel Dunbar2010-06-301-5/+6
| | | | | | | | | store make sure to move the debug metadata from the store (which is actual 'return' statement location) to the return instruction (which otherwise would have the function end location as its debug info). - Tested by gdb test suite. llvm-svn: 107322
* IRgen: Make sure any prolog instructions get debug info.Daniel Dunbar2010-06-301-0/+1
| | | | llvm-svn: 107320
* Rewriter: Use the appropriate printing context instead of the defaultDaniel Dunbar2010-06-301-16/+23
| | | | | | constructed one -- this is necessary to ensure types get printed correctly. llvm-svn: 107312
* AST: Propogate printing policy to types in a bunch more places.Daniel Dunbar2010-06-302-16/+17
| | | | llvm-svn: 107311
* Reapply:Chris Lattner2010-06-305-56/+89
| | | | | | | | | | r107173, "fix PR7519: after thrashing around and remembering how all this stuff" r107216, "fix PR7523, which was caused by the ABI code calling ConvertType instead" This includes a fix to make ConvertTypeForMem handle the "recursive" case, and call it as such when lowering function types which have an indirect result. llvm-svn: 107310
* Use isFunctionOrMethod for vars declared localllyFariborz Jahanian2010-06-301-1/+1
| | | | | | in method/blocks to decide not to mangle them. llvm-svn: 107309
* Add a return to silence a warning. Alternately a default: return falseEric Christopher2010-06-301-0/+2
| | | | | | | would work. Sebastian: figure out which one you want :) llvm-svn: 107305
* extern variable declared locally to objective-c++ methodFariborz Jahanian2010-06-301-1/+1
| | | | | | should not be mangled either. Fixes radar 8016412. llvm-svn: 107303
* Make both old and new versions of reference binding use the new ↵Sebastian Redl2010-06-302-157/+189
| | | | | | classification functions, and updated them for N3092. llvm-svn: 107301
* Complain about the application of a transparent_union attribute to aDouglas Gregor2010-06-301-2/+3
| | | | | | | | union whose first field has integral vector type. Also, clean up this diagnostic a bit. Thanks to Eli for spotting this change in semantics last week. llvm-svn: 107296
* reduce nesting.Chris Lattner2010-06-301-23/+27
| | | | llvm-svn: 107292
* Fix a comment typo.Sebastian Redl2010-06-301-1/+1
| | | | llvm-svn: 107290
* Nasty rewriter bug which turns out to have an easy fix inFariborz Jahanian2010-06-301-1/+1
| | | | | | | rewriting a c-style cast expression in statement printer. Fixes radar 8143056. llvm-svn: 107289
* Fix rdar://8139785 "implement warning on dead expression in comma operator"Argyrios Kyrtzidis2010-06-302-3/+10
| | | | | | | | | | As a bonus, fix the warning for || and && operators; it was emitted even if one of the operands had side effects, e.g: x || test_logical_foo1(); emitted a bogus "expression result unused" for 'x'. llvm-svn: 107274
* Fix PCH support for UnresolvedUsingTypenameDecl and UnresolvedUsingValueDecl.Argyrios Kyrtzidis2010-06-302-8/+8
| | | | llvm-svn: 107268
* Support DependentSizedArrayType for PCH.Argyrios Kyrtzidis2010-06-302-2/+21
| | | | llvm-svn: 107267
* Support ParenListExpr for PCH.Argyrios Kyrtzidis2010-06-302-2/+29
| | | | llvm-svn: 107266
* Mangle arrays in the Microsoft C++ Mangler. It's not quite finished (itCharles Davis2010-06-301-27/+157
| | | | | | | | | doesn't mangle array parameters right), but I think that should be fixed in Sema (Doug, John, what do you think?). Also, stub out the remaining mangleType() routines. llvm-svn: 107264
* Correctly implement the CheckerVisit optimization introduced in r106884, but ↵Ted Kremenek2010-06-301-1/+1
| | | | | | this time actually used the cached checker list when calling back to Checker visit methods. This reduces the analysis time for sqlite3.c by 8%. llvm-svn: 107259
* Headers: Define __INT64_TYPE__ in terms of getInt64Type(), which isn't alwaysDaniel Dunbar2010-06-301-0/+6
| | | | | | | | 'long'. The practical upshot is so that the uint64_t we define in our stdint.h ends up being compatible with that defined by gcc (at least on Darwin), which otherwise could lead to type incompatibilities with other system headers. llvm-svn: 107255
* Headers: Change [u]intmax_t to be defined in terms of __[U]INTMAX_TYPE__, ↵Daniel Dunbar2010-06-301-2/+2
| | | | | | instead of intN_t. llvm-svn: 107254
* Reapply r107235, this time with both my typo fixed, and a logical bug fixed.Chandler Carruth2010-06-301-28/+50
| | | | | | | | | | 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
* Revert r107235, it had a silly typo in it, and fixing the typo breaks somethingChandler Carruth2010-06-301-47/+28
| | | | | | | else. Get the build bots happy while I debug. Very sorry for the delay fixing this... llvm-svn: 107239
* Pointers casted as integers still count as locations to SimpleSValuator, so ↵Jordy Rose2010-06-301-1/+6
| | | | | | don't crash if we do a funny thing like ((int)ptr)&1. Fixes PR7527. llvm-svn: 107236
* Fix PR7402: We were creating implicit member initializers for every field in anChandler Carruth2010-06-301-28/+47
| | | | | | | | | | | 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
* Revert r107173, "fix PR7519: after thrashing around and remembering how all ↵Daniel Dunbar2010-06-304-55/+26
| | | | | | this stuff", it broke bootstrap. llvm-svn: 107232
* Revert r107216, "fix PR7523, which was caused by the ABI code calling ↵Daniel Dunbar2010-06-303-26/+17
| | | | | | ConvertType instead", it is part of a boostrap breaking sequence. llvm-svn: 107231
* Implement C++ DR299, which allows an implicit conversion from a classDouglas Gregor2010-06-304-10/+68
| | | | | | | | | | | type to an integral or enumeration type in the size of an array new expression, e.g., new int[ConvertibleToInt(10)]; This is a GNU and C++0x extension. llvm-svn: 107229
* Retain the source location of the constructor when building an implicit memberChandler Carruth2010-06-291-5/+5
| | | | | | | | | 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
* Re-improve recovery when the condition of a switch statement does notDouglas Gregor2010-06-292-9/+7
| | | | | | | | have integral or enumeration type, so that we still check the contents of the switch body. My previous patch made this worse; now we're back to where we were previously. llvm-svn: 107223
OpenPOWER on IntegriCloud