aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2013-01-28Since ObjCARC has been refactored into its own library with its own ↵Michael Gottesman
declaration header, we need to include the declaration header alongside Scalar.h in BackendUtil. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173648 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28Tests and a minor bugfix for [dcl.attr.depend]p1 (C++11 [[carries_dependency]]Richard Smith
attribute). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173645 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28Add a -pedantic warning: an anonymous union within an anonymous union is notRichard Smith
permitted in standard C++, despite being silently accepted by many (all?) major C++ implementations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173643 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-27Decl printer: fix CXXConstructExpr with implicit default argumentDmitri Gribenko
Patch by Will Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173630 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-27Comment parsing: attach any tag type's documentation to its typedef if latterDmitri Gribenko
does not have one of its own. // rdar://13067629 Original patch (r173586 and r173587) by Fariborz Jahanian, modified by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173626 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-27PR15067: Don't assert when a UCN appears in a C90 file.Jordan Rose
Unfortunately, we can't accept the UCN as an extension because we're required to treat it as two tokens for preprocessing purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173622 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-27Revert r173586 (and r173587) , "Attach any tag type's documentation to its ↵NAKAMURA Takumi
typedef if" It caused unexpected warnings with @tparam. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173614 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-27Use the AttributeSet instead of AttributeWithIndex.Bill Wendling
In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the internals of the AttributeSet to outside users, which isn't goodness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26PR14566: Debug Info: avoid top level lexical blocks in functionsDavid Blaikie
One of the gotchas (see changes to CodeGenFunction) was due to the fix in r139416 (for PR10829). This only worked previously because the top level lexical block would set the location to the end of the function, the debug location would be updated (as per r139416), the location would be set to the end of the function again (but that would no-op, since it was the same as the previous location), then the return instruction would be emitted using the debug location. Once the top level lexical block was no longer emitted, the end-of-function location change was causing the debug loc to be updated, regressing that bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173593 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Fix comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173587 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Attach any tag type's documentation to its typedef ifFariborz Jahanian
latter does not have one of its own. // rdar://13067629 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173586 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Added ASTContext methods getIntPtrType and getUIntPtrType.Enea Zaffanella
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173581 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26<limits.h> includes <linux/limits.h> on Linux, no need to special-case itDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173578 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Constify some getters of DesignatedInitExprDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173574 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26[analyzer] C++ initializers may require cleanups; look through these.Jordan Rose
When the analyzer sees an initializer, it checks if the initializer contains a CXXConstructExpr. If so, it trusts that the CXXConstructExpr does the necessary work to initialize the object, and performs no further initialization. This patch looks through any implicit wrapping expressions like ExprWithCleanups to find the CXXConstructExpr inside. Fixes PR15070. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173557 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Give a more informative error message when the dot or arrow operator is usedRichard Trieu
on a type. Currently, it gives a generic "expected unqualified-id" error. The new error message is "cannot use (dot|arrow) operator on a type". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173556 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Fix mismatch between pointer and pointee type when diagnosing an incorrectRichard Smith
object argument type for a member call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173554 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Remove function that is newly dead as of r173538.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173550 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Highlight various parts of the AST dump with color. Colors are controlled byRichard Trieu
-f(no-)color-diagnostics. In addition, dumpColor() function calls are added to force color printing. No structural changes to -ast-dump. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173548 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26[analyzer] Track null object lvalues back through C++ method calls.Jordan Rose
The expression 'a->b.c()' contains a call to the 'c' method of 'a->b'. We emit an error if 'a' is NULL, but previously didn't actually track the null value back through the 'a->b' expression, which caused us to miss important false-positive-suppression cases, including <rdar://problem/12676053>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173547 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26[analyzer] bugreporter::getDerefExpr now takes a Stmt, not an ExplodedNode.Jordan Rose
This allows it to be used in places where the interesting statement doesn't match up with the current node. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173546 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26[analyzer] Add 'prune-paths' config option to disable path pruning.Jordan Rose
This should be used for testing only. Path pruning is still on by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173545 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26[analyzer] Rename PruneNullReturnPaths to SuppressNullReturnPaths.Jordan Rose
"Prune" is the term for eliminating pieces of a path that are not relevant to the user. "Suppress" means don't show that path at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173544 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Since we're stuck with realpath for the header <-> module mapping,Douglas Gregor
factor the realpath calls into FileManager::getCanonicalName() so we can cache the results of this epically slow operation. 5% speedup on my modules test, and realpath drops out of the profile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173542 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Revert r172285 (suppressing a 'redundant' -Wc++98-compat warning) and add aRichard Smith
testcase for a situation it caused us to miss. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173540 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Comment parsing: actually check for a block command after "\param x"Dmitri Gribenko
This fixes PR15068. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173539 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Preserve Sema::UndefinedInternals across PCH boundaries. FixesNick Lewycky
-Wundefined-internal warnings with PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173538 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25patch for PR9027 and // rdar://11861085Fariborz Jahanian
Title: [PR9027] volatile struct bug: member is not loaded at -O; This is caused by last flag passed to @llvm.memcpy being false, not honoring that aggregate has at least one 'volatile' data member (even though aggregate itself has not been qualified as 'volatile'. As a result, optimization optimizes away the memcpy altogether. Patch review by John MaCall (I still need to fix up a test though). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173535 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25ARM says that the array cookie should always be eight bytes.John McCall
ARM is not thinking about over-aligned structures. Overrule ARM in both our generic-ARM and iOS ABI implementations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173531 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Move the decision about the kind of CGCXXABI to make insideJohn McCall
the family-specific files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173530 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Improve coordination between the module manager and the global moduleDouglas Gregor
index, optimizing the operation that skips lookup in modules where we know the identifier will not be found. This makes the global module index optimization actually useful, providing an 8.5% speedup over modules without the global module index for -fsyntax-only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173529 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25simplify code by removing excessive bracing.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173521 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Attach enum's documentation to its typedef ifFariborz Jahanian
latter does not have one of its own. // rdar://13067629 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173516 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25The standard ARM C++ ABI dictates that inline functions areJohn McCall
never key functions. We did not implement that rule for the iOS ABI, which was driven by what was implemented in gcc-4.2. However, implement it now for other ARM-based platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173515 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25First pass at abstracting out a class for the target C++ ABI.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Optimize ModuleManager::visit() by precomputing the visitation orderDouglas Gregor
and limiting ourselves to two memory allocations. 10% speedup in -fsyntax-only time for modules. With this change, we can actually see some performance different from the global module index, but it's still about 1%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173512 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Silence unintended fallthrough diagnostic on a case label preceded with a ↵Alexander Kornienko
normal label. Summary: It's unlikely that a fallthrough is unintended in the following code: switch (n) { ... label: case 1: ... goto label; ... } Reviewers: rsmith, doug.gregor Reviewed By: doug.gregor CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D329 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173486 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Don't suggest to insert [[clang::fallthrough]] before empty cases. Fix for ↵Alexander Kornienko
multiple case labels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173458 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Fix some alignment and line break decisions.Daniel Jasper
This combines two small changes: 1) Put a penalty on breaking after "<" 2) Only produce a hanging indent when parameters are separated by commas. Before: aaaaaaaaaaaaaaaaaaaaaaaa< aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa>(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaa)); After: aaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa>( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaa)); This changes one ObjC test, but AFAICT this is not according to any style guide (neither before nor after). We probably should be aligning on the ":" there according to: http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml?showone=Method_Invocations#Method_Invocations git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173457 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Lexer.cpp: Fix a warning with ptrdiff_t on i686. [-Wsign-compare]NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173447 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Allow breaking after "::" if absolutely necessary.Daniel Jasper
Otherwise, really long nested name specifiers can easily lead to a violation of the column limit. Not sure about the rules for indentation in those cases, so input is appreciated (see tests.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173438 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Sync 'in class initialization of static const double' extension up with GCC,Richard Smith
and split it out of -Wgnu into its own warning flag. * In C++11, this is now a hard error (GCC has no extension here in C++11 mode). The error can be disabled with -Wno-static-float-init, and has a fixit to add 'constexpr'. * In C++98, this is still an ExtWarn, but is now controlled by -Wstatic-float-init as well as -Wgnu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[Frontend] Remove another IsUserSpecified member variable that is now unused.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173412 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[Frontend] Drop the isUserSupplied argument to InitHeaderSearch, it is unused.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173411 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[Frontend] The -iwithprefix option belongs in the After category, according toDaniel Dunbar
GCC docs. - Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173410 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[Lex] Remove DirectoryLookup.UserSpecified, which is unused.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173409 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Serialization/GlobalModuleIndex.cpp: Fixup r173405, <cstdio>NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173408 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Implement the reader of the global module index and wire it into theDouglas Gregor
AST reader. The global module index tracks all of the identifiers known to a set of module files. Lookup of those identifiers looks first in the global module index, which returns the set of module files in which that identifier can be found. The AST reader only needs to look into those module files and any module files not known to the global index (e.g., because they were (re)built after the global index), reducing the number of on-disk hash tables to visit. For an example source I'm looking at, we go from 237844 total identifier lookups into on-disk hash tables down to 126817. Unfortunately, this does not translate into a performance advantage. At best, it's a wash once the global module index has been built, but that's ignore the cost of building the global module index (which is itself fairly large). Profiles show that the global module index code is far less efficient than it should be; optimizing it might give enough of an advantage to justify its continued inclusion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173405 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Rename the -cc1 option "-generate-module-index" toDouglas Gregor
"-fmodules-global-index" and expand its behavior to include both the use and generation of the global module index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173404 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Track the number of lookups and hits into the on-disk hash tables forDouglas Gregor
identifiers within the AST file reader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173403 91177308-0d34-0410-b5e6-96231b3b80d8