- Mar 07, 2015
-
-
Benjamin Kramer authored
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 :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231564 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chandler Carruth authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231559 91177308-0d34-0410-b5e6-96231b3b80d8
-
Jordan Rose authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231553 91177308-0d34-0410-b5e6-96231b3b80d8
-
Anton Yartsev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231548 91177308-0d34-0410-b5e6-96231b3b80d8
-
Hans Wennborg authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231541 91177308-0d34-0410-b5e6-96231b3b80d8
-
Anton Yartsev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231540 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231538 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231536 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231534 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
We didn't create type info based on the unqualified pointee type, causing RTTI mismatches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231533 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 06, 2015
-
-
Benjamin Kramer authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231508 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231499 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
We would make i8 literals turn into signed char instead of char. This is incompatible with MSVC. This fixes PR22824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231494 91177308-0d34-0410-b5e6-96231b3b80d8
-
Benjamin Kramer authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231488 91177308-0d34-0410-b5e6-96231b3b80d8
-
Samuel Benzaquen authored
The method decl is not marked as overriding any other method decls until the template is instantiated. Use the override attribute as another signal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231487 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231477 91177308-0d34-0410-b5e6-96231b3b80d8
-
Benjamin Kramer authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231476 91177308-0d34-0410-b5e6-96231b3b80d8
-
Daniel Jasper authored
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) { } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231461 91177308-0d34-0410-b5e6-96231b3b80d8
-
Yaron Keren authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231455 91177308-0d34-0410-b5e6-96231b3b80d8
-
Nico Weber authored
Fixes PR22793, a bug that caused self-hosting to fail after the innocuous r231254. See the bug for details. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231451 91177308-0d34-0410-b5e6-96231b3b80d8
-
Hans Wennborg authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231431 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231424 91177308-0d34-0410-b5e6-96231b3b80d8
-
Fariborz Jahanian authored
arithmetic type to a vector so that the arithmatic type matches the vector element type. Without which it crashes in Code Gen. rdar://20000762 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231419 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 05, 2015
-
-
Alexey Samsonov authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231409 91177308-0d34-0410-b5e6-96231b3b80d8
-
Zachary Turner authored
Changes call to PrintStackTrace(FILE*) to call PrintStackTrace(raw_ostream&) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231393 91177308-0d34-0410-b5e6-96231b3b80d8
-
Toma Tabacu authored
Added a REQUIRES for the Mips target. Also, switched to using plain CHECKs, at the suggestion of Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231363 91177308-0d34-0410-b5e6-96231b3b80d8
-
Argyrios Kyrtzidis authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231346 91177308-0d34-0410-b5e6-96231b3b80d8
-
Hans Wennborg authored
Patch by Michael Edwards! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231339 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231328 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231320 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rick Foos authored
Summary: Temporary XFAIL's until patches done. Reviewers: echristo, adasgupt, colinl Reviewed By: colinl Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8044 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231318 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
Mostly short-circuits some conditionals. Adds target validation of sections passed to these pragmas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231317 91177308-0d34-0410-b5e6-96231b3b80d8
-
Anton Yartsev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231314 91177308-0d34-0410-b5e6-96231b3b80d8
-
Hans Wennborg authored
And start building a test for non-clang-cl link.exe invocations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231312 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 04, 2015
-
-
David Blaikie authored
Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231302 91177308-0d34-0410-b5e6-96231b3b80d8
-
Nemanja Ivanovic authored
Review: http://reviews.llvm.org/D7951 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231291 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231280 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231278 91177308-0d34-0410-b5e6-96231b3b80d8
-
Gabor Horvath authored
Reviewed by: Anna Zaks Original patch by: Aleksei Sidorin Differential Revision: http://reviews.llvm.org/D7905 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231266 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alex Denisov authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231265 91177308-0d34-0410-b5e6-96231b3b80d8
-