summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Properly initialize the parser_crash debug token.Benjamin Kramer2015-03-081-0/+2
| | | | | | Found by msan. llvm-svn: 231605
* Fix the MSVC build.Benjamin Kramer2015-03-081-2/+0
| | | | | | Type traits are hard. llvm-svn: 231604
* Make Token a real POD type.Benjamin Kramer2015-03-082-5/+10
| | | | | | | We copy them around a lot and skip construction in favor of startToken, make the default construction trivial to reflect that. llvm-svn: 231603
* Make constant static variables const so they can go into a read-only sectionBenjamin Kramer2015-03-082-7/+8
| | | | | | NFC. llvm-svn: 231597
* [Rewrite] Make RewriteBuffer accessible on its own, and add a unit test for it.Argyrios Kyrtzidis2015-03-087-8/+90
| | | | llvm-svn: 231588
* [Rewrite] Move RewriteBuffer into its own header.Argyrios Kyrtzidis2015-03-082-96/+114
| | | | llvm-svn: 231587
* ASTMatchers: Make AST_POLYMORPHIC_SUPPORTED_TYPES a variadic macroBenjamin Kramer2015-03-075-72/+68
| | | | | | C++11 finally allows us to use this C99 feature. llvm-svn: 231575
* Wrap to 80 columns. No behavior change.Nico Weber2015-03-073-7/+12
| | | | llvm-svn: 231573
* Reapply r231508 "CodeGen: Emit constant temporaries into read-only globals."Benjamin Kramer2015-03-075-22/+66
| | | | | | | | | | | | I disabled putting the new global into the same COMDAT as the function for now. There's a fundamental problem when we inline references to the global but still have the global in a COMDAT linked to the inlined function. Since this is only an optimization there may be other versions of the COMDAT around that are missing the new global and hell breaks loose at link time. I hope the chromium build doesn't break this time :) llvm-svn: 231564
* Much like we silence warnings about -flto in many cases to facilitateChandler Carruth2015-03-072-0/+19
| | | | | | | | | | | simplicity in build systems, silence '-stdlib=libc++' when linking. Even if we're not linking C++ code per-se, we may be passing this flag so that when we are linking C++ code we pick up the desired standard library. While most build systems already provide separate C and C++ compile flags, many conflate link flags. Sadly, CMake is among them causing this warning in a libc++ selfhost. llvm-svn: 231559
* [analyzer] RetainCountChecker: CF properties are always manually retain-counted.Jordan Rose2015-03-072-8/+59
| | | | | | | | | | | In theory we could assume a CF property is stored at +0 if there's not a custom setter, but that's not really worth the complexity. What we do know is that a CF property can't have ownership attributes, and so we shouldn't assume anything about the ownership of the ivar. rdar://problem/20076963 llvm-svn: 231553
* [analyzer] Remove unused type (addition to r231540: "Revert changes from ↵Anton Yartsev2015-03-071-1/+0
| | | | | | r229593") llvm-svn: 231548
* Revert r231508 "CodeGen: Emit constant temporaries into read-only globals."Hans Wennborg2015-03-075-68/+22
| | | | | | | | | This broke the Chromium build. Links were failing with messages like: obj/dbus/libdbus_test_support.a(obj/dbus/dbus_test_support.mock_object_proxy.o):../../dbus/mock_object_proxy.cc:function dbus::MockObjectProxy::Detach(): warning: relocation refers to discarded section /usr/local/google/work/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: error: treating warnings as errors llvm-svn: 231541
* [analyzer] Revert changes from r229593; an enhancement is under discussionAnton Yartsev2015-03-071-87/+67
| | | | llvm-svn: 231540
* Replace Sema's map of locally-scoped extern "C" declarations with a DeclContextRichard Smith2015-03-0721-123/+94
| | | | | | | | | | of extern "C" declarations. This is simpler and vastly more efficient for modules builds (we no longer need to load *all* extern "C" declarations to determine if we have a redeclaration). No functionality change intended. llvm-svn: 231538
* Unbreak build botsDavid Majnemer2015-03-061-2/+2
| | | | llvm-svn: 231536
* MS ABI: Stick throw-related data into the .xdata sectionDavid Majnemer2015-03-063-11/+14
| | | | | | | This is a little nicer as it keeps the contents of .xdata away from normal .rdata; we expect .xdata to be far colder than .rdata. llvm-svn: 231534
* MS ABI: Correctly generate throw-info for pointer to const qual typesDavid Majnemer2015-03-063-6/+23
| | | | | | | We didn't create type info based on the unqualified pointee type, causing RTTI mismatches. llvm-svn: 231533
* CodeGen: Emit constant temporaries into read-only globals.Benjamin Kramer2015-03-065-22/+68
| | | | | | | | | | | | | | | | | | | | | | | Instead of creating a copy on the stack just stash them in a private constant global. This saves both the copying overhead and the stack space, and gives the optimizer more room to constant fold. This tries to make array temporaries more similar to regular arrays, they can't use the same logic because a temporary has no VarDecl to be bound to so we roll our own version here. The original use case for this optimization was code like for (int i : {1, 2, 3, 4, 5, 6, 7, 8, 10}) foo(i); where without this patch (assuming that the loop is not unrolled) we would alloca an array on the stack, copy the 10 values over and iterate on that. With this patch we put the array in .text use it directly. Apart from that case this helps on virtually any passing of a constant std::initializer_list as a function argument. Differential Revision: http://reviews.llvm.org/D8034 llvm-svn: 231508
* MS ABI: Insert copy-constructors into the CatchableTypeDavid Majnemer2015-03-0610-35/+161
| | | | | | | | | | | | | | | | Find all unambiguous public classes of the exception object's class type and reference all of their copy constructors. Yes, this is not conforming but it is necessary in order to implement their ABI. This is because the copy constructor is actually referenced by the metadata describing which catch handlers are eligible to handle the exception object. N.B. This doesn't yet handle the copy constructor closure case yet, that work is ongoing. Differential Revision: http://reviews.llvm.org/D8101 llvm-svn: 231499
* Sema: The i8 suffix should yield a literal of type charDavid Majnemer2015-03-063-1/+10
| | | | | | | | | We would make i8 literals turn into signed char instead of char. This is incompatible with MSVC. This fixes PR22824. llvm-svn: 231494
* Sema: We can use delegating ctors now. NFC.Benjamin Kramer2015-03-062-121/+93
| | | | llvm-svn: 231488
* Fix isOverride() for the case of a dependent typed base class.Samuel Benzaquen2015-03-062-1/+4
| | | | | | | | The method decl is not marked as overriding any other method decls until the template is instantiated. Use the override attribute as another signal. llvm-svn: 231487
* Removing code that is unused after r231424; NFC.Aaron Ballman2015-03-061-8/+0
| | | | llvm-svn: 231477
* Use delegating ctors to reduce code duplication. NFC.Benjamin Kramer2015-03-063-47/+6
| | | | llvm-svn: 231476
* clang-format: Slightly change indentation rules in for loops.Daniel Jasper2015-03-062-4/+7
| | | | | | | | | | | | | | | | | | | | | | There was already a TODO to double-check whether the extra indenation makes sense. A slightly different case reveals that it is actively harmful: for (int i = 0; i < aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbb < ccccccccccccccc; ++i) { } Here (and it is probably not a totally infrequent case, it just works out that "i < " is four spaces and so the four space extra indentation makes the operator precedence confusing. So, this will now instead be formatted as: for (int i = 0; i < aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbb < ccccccccccccccc; ++i) { } llvm-svn: 231461
* Silence C4715 'not all control paths return a value' warnings.Yaron Keren2015-03-061-0/+1
| | | | llvm-svn: 231455
* Don't crash on non-public referenced dtors in toplevel classes.Nico Weber2015-03-062-2/+19
| | | | | | | Fixes PR22793, a bug that caused self-hosting to fail after the innocuous r231254. See the bug for details. llvm-svn: 231451
* Add a download link to the web page (PR22764)Hans Wennborg2015-03-061-0/+1
| | | | llvm-svn: 231431
* [modules] Rework merging of redeclaration chains on module import.Richard Smith2015-03-0512-194/+146
| | | | | | | | | | | | | | | | | | | | | | We used to save out and eagerly load a (potentially huge) table of merged formerly-canonical declarations when we loaded each module. This was extremely inefficient in the presence of large amounts of merging, and didn't actually save any merging lookup work, because we still needed to perform name lookup to check that our merged declaration lists were complete. This also resulted in a loss of laziness -- even if we only needed an early declaration of an entity, we would eagerly pull in all declarations that had been merged into it regardless. We now store the relevant fragments of the table within the declarations themselves. In detail: * The first declaration of each entity within a module stores a list of first declarations from imported modules that are merged into it. * Loading that declaration pre-loads those other entities, so that they appear earlier within the redeclaration chain. * The name lookup tables list the most recent local lookup result, if there is one, or all directly-imported lookup results if not. llvm-svn: 231424
* [PATCH] Patch to fix the AST for vector splat from any Fariborz Jahanian2015-03-052-2/+31
| | | | | | | | arithmetic type to a vector so that the arithmatic type matches the vector element type. Without which it crashes in Code Gen. rdar://20000762 llvm-svn: 231419
* Revert "[UBSan] Split -fsanitize=shift into -fsanitize=shift-base and ↵Alexey Samsonov2015-03-057-60/+54
| | | | | | | | | | | -fsanitize=shift-exponent." It's not that easy. If we're only checking -fsanitize=shift-base we still need to verify that exponent has sane value, otherwise UBSan-inserted checks for base will contain undefined behavior themselves. llvm-svn: 231409
* Clang side change following r231392.Zachary Turner2015-03-051-1/+1
| | | | | | | Changes call to PrintStackTrace(FILE*) to call PrintStackTrace(raw_ostream&) llvm-svn: 231393
* Recommit "[IAS] Teach -cc1as about the 'target-abi' option."Toma Tabacu2015-03-052-2/+8
| | | | | | | Added a REQUIRES for the Mips target. Also, switched to using plain CHECKs, at the suggestion of Eric Christopher. llvm-svn: 231363
* [test] Expand a bit on the test case from r231251. NFC.Argyrios Kyrtzidis2015-03-052-3/+5
| | | | llvm-svn: 231346
* Fix msvc-link.c test for environments with link.exe on PATHHans Wennborg2015-03-051-2/+2
| | | | | | Patch by Michael Edwards! llvm-svn: 231339
* MS ABI: Implement support for throwing a C++ exceptionDavid Majnemer2015-03-059-124/+530
| | | | | | | | | | | | | | | | | | | | | | | Throwing a C++ exception, under the MS ABI, is implemented using three components: - ThrowInfo structure which contains information like CV qualifiers, what destructor to call and a pointer to the CatchableTypeArray. - In a significant departure from the Itanium ABI, copying by-value occurs in the runtime and not at the catch site. This means we need to enumerate all possible types that this exception could be caught as and encode the necessary information to convert from the exception object's type to the catch handler's type. This includes complicated derived to base conversions and the execution of copy-constructors. N.B. This implementation doesn't support the execution of a copy-constructor from within the runtime for now. Adding support for that functionality is quite difficult due to things like default argument expressions which may evaluate arbitrary code hiding in the copy-constructor's parameters. Differential Revision: http://reviews.llvm.org/D8066 llvm-svn: 231328
* Give some obj-c rewriter tests that use MS pragmas a triple as a speculative fixReid Kleckner2015-03-052-6/+6
| | | | llvm-svn: 231320
* Temporary XFAILs for HexagonRick Foos2015-03-044-0/+4
| | | | | | | | | | | | | | Summary: Temporary XFAIL's until patches done. Reviewers: echristo, adasgupt, colinl Reviewed By: colinl Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8044 llvm-svn: 231318
* Implement section pragma feedback on r205810Reid Kleckner2015-03-044-8/+27
| | | | | | | Mostly short-circuits some conditionals. Adds target validation of sections passed to these pragmas. llvm-svn: 231317
* [analyzer] Bug fix: do not report leaks for alloca()Anton Yartsev2015-03-042-0/+14
| | | | llvm-svn: 231314
* Pass -dll to link.exe when building with -shared (PR22697)Hans Wennborg2015-03-042-1/+15
| | | | | | And start building a test for non-clang-cl link.exe invocations. llvm-svn: 231312
* Fix the clang self-host -Werror buildDavid Blaikie2015-03-041-1/+1
| | | | | | Sorry about the breakage. llvm-svn: 231302
* Add Clang support for PPC cryptography builtinsNemanja Ivanovic2015-03-049-1/+602
| | | | | | Review: http://reviews.llvm.org/D7951 llvm-svn: 231291
* Fix test/CodeGen/builtins.c for platforms that don't lower sjljReid Kleckner2015-03-043-0/+8
| | | | | | | | Opt in Win64 to supporting sjlj lowering. We have the backend lowering, so I think this was just an oversight because WinX86_64TargetCodeGenInfo doesn't inherit from X86_64TargetCodeGenInfo. llvm-svn: 231280
* Try to fix the build after removing DataLayoutPassReid Kleckner2015-03-041-3/+0
| | | | llvm-svn: 231278
* [analyzer] Individual configuration options can be specified for checkers.Gabor Horvath2015-03-0413-48/+272
| | | | | | | | | | Reviewed by: Anna Zaks Original patch by: Aleksei Sidorin Differential Revision: http://reviews.llvm.org/D7905 llvm-svn: 231266
* New ObjC warning: circular containers.Alex Denisov2015-03-047-10/+536
| | | | | | | | | | | | | | | | | | | | | This commit adds new warning to prevent user from creating 'circular containers'. Mutable collections from NSFoundation allows user to add collection to itself, e.g.: NSMutableArray *a = [NSMutableArray new]; [a addObject:a]; The code above leads to really weird behaviour (crashes, 'endless' recursion) and retain cycles (collection retains itself) if ARC enabled. Patch checks the following collections: - NSMutableArray, - NSMutableDictionary, - NSMutableSet, - NSMutableOrderedSet, - NSCountedSet. llvm-svn: 231265
* [Modules] Fix crash in Preprocessor::getLastMacroWithSpelling().Argyrios Kyrtzidis2015-03-043-3/+20
| | | | | | Macro names that got undefined inside a module may not have their MacroInfo set. llvm-svn: 231251
* Revert "[IAS] Teach -cc1as about the 'target-abi' option."Daniel Jasper2015-03-042-7/+2
| | | | | | | | | This reverts commit 0e41c8faeff75614cf4627533331d780ba3db030. This is breaking buildbots: http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/4668/ llvm-svn: 231248
OpenPOWER on IntegriCloud