aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-03-21Fix indentationDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177665 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Objective-C: Tighten the rules when warningFariborz Jahanian
is issused for on overriding 'readwrite' property which is not auto-synthesized. Buttom line is that if hueristics determine that there will be a user implemented setter, no warning will be issued. // rdar://13388503 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177662 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Generalize debug info tests to be forward compatible with future ↵David Blaikie
DISubprogram changes git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177659 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21This ugly regex is required because on Windows, the paths come out as \\ ↵Aaron Ballman
delimited instead of / delimited. Fixes a test breakage since r176894. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177658 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Remove unused variable.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177657 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Avoid warnings from compilers that think you can drop off the end of a fully ↵Benjamin Kramer
covered switch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177656 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Delayed template parsing is not supported by the AST serialization system ↵Aaron Ballman
yet, so turning it off. This fixes a test breakage caused by r177336. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177655 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21[analyzer] Print return values from debug.DumpCalls checker.Jordan Rose
Debug utility only, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177649 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Better block comment formatting.Alexander Kornienko
Summary: 1. When splitting one-line block comment, use indentation and *s. 2. Remove trailing whitespace from all lines of a comment, not only the ones being splitted. 3. Add backslashes for all lines if a comment is used insed a preprocessor directive. Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D557 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177635 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21[ASan] Let the users to invoke `clang -fsanitize=address` to link binaries ↵Alexander Potapenko
targeting the iOS simulator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177633 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Fix a typo.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177626 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21<rdar://problem/13037793> Allow the names of modules to differ from the name ↵Douglas Gregor
of their subdirectory in the include path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177621 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Further weaken block conversion rules to permit blocks withJohn McCall
enum return type to be converted to blocks with any integer type of the same size. rdar://13463504 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177613 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21Add more testing cases for tbaa.structManman Ren
Testing cases for structs of structs and unions of structs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177612 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Debug info - generalize namespace test to not depend on a DW_TAG_file_type entryDavid Blaikie
This isn't necessary & with the next change to LLVM the DW_TAG_file_type entry won't be emitted at all - only the raw filename/directory pair, so match on that directly instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177609 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Split ubsan runtime into three pieces (clang part):Richard Smith
* libclang_rt-san-* is sanitizer_common, and is linked in only if no other sanitizer runtime is present. * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on a C++ ABI library, and is always linked in. * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a C++ ABI library, and is only linked in when linking a C++ binary. This change also switches us to using -whole-archive for the ubsan runtime (which is made possible by the above split), and switches us to only linking the sanitizer runtime into the main binary and not into DSOs (which is made possible by using -whole-archive). The motivation for this is to only link a single copy of sanitizer_common into any binary. This is becoming important now because we want to share more state between multiple sanitizers in the same process (for instance, we want a single shared output mutex). The Darwin ubsan runtime is unchanged; because we use a DSO there, we don't need this complexity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[ms-cxxabi] Mangle function pointer template arguments correctlyReid Kleckner
Reviewers: rjmccall CC: timurrrr, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D554 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177589 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Appease buildbots: include template arguments in base class ref.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177583 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Documentation cleanup for MacroInfo.James Dennett
* Clarify what MacroInfo::isBuiltinMacro means, as it really means something more like "isMagicalMacro" or "requiresProcessingBeforeExpansion" -- the macros defined in "<built-in>" are not considered built-in by this function; * Escape __LINE__ as \__LINE__ in Doxygen comments so that the underscores don't get replaced by *bold* output; * Turn comments in MacroInfo.cpp into non-Doxygen comments, so that they don't result in duplicated/badly formatted Doxygen output; * Clean up a bunch of \brief formatting, and add a \file comment for MacroInfo.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177581 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, ↵Douglas Gregor
and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Don't invalidate globals when there's no call involved.Jordan Rose
This fixes some mistaken condition logic in RegionStore that caused global variables to be invalidated when /any/ region was invalidated, rather than only as part of opaque function calls. This was only being used by CStringChecker, and so users will now see that strcpy() and friends do not invalidate global variables. Also, add a test case we don't handle properly: explicitly-assigned global variables aren't being invalidated by opaque calls. This is being tracked by <rdar://problem/13464044>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177572 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Track malloc'd memory into struct fields.Jordan Rose
Due to improper modelling of copy constructors (specifically, their const reference arguments), we were producing spurious leak warnings for allocated memory stored in structs. In order to silence this, we decided to consider storing into a struct to be the same as escaping. However, the previous commit has fixed this issue and we can now properly distinguish leaked memory that happens to be in a struct from a buffer that escapes within a struct wrapper. Originally applied in r161511, reverted in r174468. <rdar://problem/12945937> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177571 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Invalidate regions indirectly accessible through const pointers.Jordan Rose
In this case, the value of 'x' may be changed after the call to indirectAccess: struct Wrapper { int *ptr; }; void indirectAccess(const Wrapper &w); void test() { int x = 42; Wrapper w = { x }; clang_analyzer_eval(x == 42); // TRUE indirectAccess(w); clang_analyzer_eval(x == 42); // UNKNOWN } This is important for modelling return-by-value objects in C++, to show that the contents of the struct are escaping in the return copy-constructor. <rdar://problem/13239826> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177570 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Remove strip of ElementRegion in CallEvent::invalidateRegions.Jordan Rose
This is a bit of old code trying to deal with the fact that functions that take pointers often use them to access an entire array via pointer arithmetic. However, RegionStore already conservatively assumes you can use pointer arithmetic to access any part of a region. Some day we may want to go back to handling this specifically for calls, but we can do that in the future. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177569 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20refactoring file/directory for namespace debug infoDavid Blaikie
(this is a paired commit with an LLVM change to DIBuilder - expect some buildbot skew/fallout) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177565 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Enhance debug info namespace test to check for context/scope referenceDavid Blaikie
The #line directive is mostly for backend testing (keeping these files matching should simplify maintenance somewhat) though the corresponding backend test improvement/update doesn't verify the file information directly just yet. Coming in a later iteration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177559 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Do the error recovery for @end only.Fariborz Jahanian
I am not sure how much we can improve for when a randon ObjC keyword is thrown into the ivar decl. block. // rdar://6854840 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177553 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[docs] Point inquisitive users to existing module.map files.Sean Silva
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177552 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[docs] Prominently note that modules are expemental.Sean Silva
And ask for people to try it out and send us bug reports! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177551 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Objective-C [qoi] more gracefull recovery when Fariborz Jahanian
'}' is missing for the ivar declarations. // rdar://6854840 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177549 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20PR7256: Provide a fixit for incorrect destructor declarationsDavid Blaikie
Fix by Ismail Pazarbasi (ismail.pazarbasi@gmail.com), review by Dmitri Gribenko. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177546 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Fix typo and grammaro in modules documentationDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177544 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Only introduce the SDKSettings.plist dependency in modules/PCH files that ↵Douglas Gregor
don't depend on any other modules or PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177542 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Exploit this-return of a callsite in a this-return function.Manman Ren
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return instruction, make sure we are using the return value from the callsite. We don't need to keep 'this' alive through the callsite. It also enables optimizations in the backend, such as tail call optimization. Updated from r177211. rdar://12818789 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177541 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Support for pointers-to-members usage via .*Alexander Kornienko
Summary: Added support for pointers-to-members usage via .* and a few tests. Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D556 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177537 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Remove assertion that can be triggered on bad input.Daniel Jasper
clang-format can't do anything useful, so it should leave the remainder of the line unchanged, but it should not assert/segfault. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177530 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Fix infinite-loop in unwrapped line parser.Daniel Jasper
Discovered when accidentally formatting a python file :-). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177527 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Do not consider comments when adjusting to local indent style.Daniel Jasper
Before (when only reformatting "int b"): int a; // comment // comment int b; After: int a; // comment // comment int b; This also fixes llvm.org/PR15433. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177524 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Reduce penalty for breaks after "(" for functions with parameters.Daniel Jasper
Before: aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); After: aaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177521 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Add extra indentation for multiline comparisons.Daniel Jasper
This seems to be generally more desired. Before: if (aaaaaaaa && bbbbbbbb > cccccccc) {} After: if (aaaaaaaa && bbbbbbbb > cccccccc) {} Also: Some formatting cleanup on clang-format's files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Don't remove all indentation when in #defines.Daniel Jasper
Otherwise, this can become hard to read. Before: #define A \ case 1: After: #define A \ case 1: git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177509 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Add clang-format binary to cfe.Daniel Jasper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177506 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Improve formatting of function types in template parameters.Daniel Jasper
Before: A<int * (int)>; After: A<int *(int)>; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177505 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Fix redundant comparison in gcc::Common::ConstructJob.Hans Wennborg
We were checking "Arch == llvm::Triple::x86_64 || Arch == llvm::Triple::x86_64", but the rhs should actually check for powerpc64. Found while experimenting with a potential new Clang warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177496 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Work-in-progress documentation on the experimental modules feature.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177491 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Remove some dead code.John McCall
Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177490 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make front-end debug info namespace test frontend-only & more specific ↵David Blaikie
without overconstraining it The backend portion of this test will be committed to LLVM's test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177485 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make sure that Module::ConfigMacrosExhaustive gets initialized and ↵Douglas Gregor
deserialized correctly. This fixes regressions introduced in r177466 that caused several module tests to fail sporadically. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177481 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Teach statement / declaration disambiguation about C++11-style generalized ↵Richard Smith
initializers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177480 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Remove the Tools DensMap from the toolchain.Rafael Espindola
Each toolchain has a set of tools, but they are all of known types. It can have a linker, an assembler, a "clang" (compile, analyze, ...) a non-clang compiler, etc. Instead of keeping a map, just have member variable for each type of tool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177479 91177308-0d34-0410-b5e6-96231b3b80d8