| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 130009
|
| |
|
|
|
|
|
|
|
| |
cases that demonstrates exactly why this does indeed apply in 0x mode.
If isPOD is currently broken in 0x mode, we should fix that directly
rather than papering over it here.
llvm-svn: 130007
|
| |
|
|
|
|
| |
Fixes assertion later on. rdar://9122937 & http://llvm.org/PR9459
llvm-svn: 130006
|
| |
|
|
| |
llvm-svn: 130003
|
| |
|
|
|
|
|
|
| |
true.
Fixes an assertion later on, rdar://9122862 & http://llvm.org/PR9460.
llvm-svn: 130000
|
| |
|
|
| |
llvm-svn: 129987
|
| |
|
|
|
|
| |
to a warning in Microsoft mode.
llvm-svn: 129985
|
| |
|
|
| |
llvm-svn: 129979
|
| |
|
|
| |
llvm-svn: 129967
|
| |
|
|
| |
llvm-svn: 129951
|
| |
|
|
|
|
|
|
|
|
|
| |
instance, in the following code, 'case ' will be suggested before the '1:'
switch (x) {
1: return 0;
default: return 1;
}
llvm-svn: 129943
|
| |
|
|
|
|
| |
can't be represented in the environment define.
llvm-svn: 129939
|
| |
|
|
|
|
| |
tag name. Fixes rdar://9295072
llvm-svn: 129917
|
| |
|
|
|
|
| |
rdar://9308989.
llvm-svn: 129916
|
| |
|
|
| |
llvm-svn: 129907
|
| |
|
|
|
|
|
| |
of which break strict compatibility with previous compilers. Implement
one of them and then immediately opt out on Darwin.
llvm-svn: 129899
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
double data[20000000] = {0};
we would blow out the memory by creating 20M Exprs to fill out the initializer.
To fix this, if the initializer list initializes an array with more elements than
there are initializers in the list, have InitListExpr store a single 'ArrayFiller' expression
that specifies an expression to be used for value initialization of the rest of the elements.
Fixes rdar://9275920.
llvm-svn: 129896
|
| |
|
|
| |
llvm-svn: 129892
|
| |
|
|
|
|
|
|
| |
adjust the a ending macro location to the end of the instantiation
location before adjusting it to the end of the token. Fixes
<rdar://problem/9021561>.
llvm-svn: 129872
|
| |
|
|
|
|
| |
architectures for triples, e.g. ptx32-unknown-unknown
llvm-svn: 129870
|
| |
|
|
| |
llvm-svn: 129866
|
| |
|
|
|
|
|
| |
access expression that appears to be a property reference. Fixes
<rdar://problem/8985943>.
llvm-svn: 129865
|
| |
|
|
| |
llvm-svn: 129835
|
| |
|
|
| |
llvm-svn: 129824
|
| |
|
|
|
|
| |
// rdar://9132143
llvm-svn: 129822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
warnings diverge from
gcc's unused warnings which don't get emitted if the function is referenced even in an unevaluated context
(e.g. in templates, sizeof, etc.). Also, saying that a function is 'unused' because it won't get codegen'ed
is somewhat misleading.
- Don't emit 'unused' warnings for functions that are referenced in any part of the user's code.
- A warning that an internal function/variable won't get emitted is useful though, so introduce
-Wunneeded-internal-declaration which will warn if a function/variable with internal linkage is not
"needed" ('used' from the codegen perspective), e.g:
static void foo() { }
template <int>
void bar() {
foo();
}
test.cpp:1:13: warning: function 'foo' is not needed and will not be emitted
static void foo() { }
^
Addresses rdar://8733476.
llvm-svn: 129794
|
| |
|
|
|
|
|
|
|
| |
CL_AddressableVoid is the expression classification used for void
expressions whose address can be taken, i.e. the result of [], *
or void variable references in C, as opposed to things like the
result of a void function call.
llvm-svn: 129783
|
| |
|
|
|
|
| |
pointers. Fixes PR9746.
llvm-svn: 129741
|
| |
|
|
| |
llvm-svn: 129740
|
| |
|
|
|
|
|
|
| |
of conditional expressions of objc pointer types
where one type is the immediate base type of the
other. // rdar://9296866
llvm-svn: 129718
|
| |
|
|
|
|
| |
weren't being added to the DeclContext (nor were they being marked as implicit). Also, the declarations were being emitted in the wrong order when building the CFG.
llvm-svn: 129700
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implementation such as
@synthesize Prop1 =
Give priority to ivars whose type matches or closely matches the
property type (as we do for several other kinds of
results). Additionally, if there is an ivar with the same name as the
property, or differs only due to a _ prefix or suffix, give that ivar
a priority bump. Finally, verify that this search is properly
returning ivars within class extensions and implementations
(<rdar://problem/8488854>).
llvm-svn: 129699
|
| |
|
|
|
|
|
|
|
|
|
| |
implementation
@synthesize <property> =
also produce a completion for a to-be-synthesized ivar named
_<property>.
llvm-svn: 129697
|
| |
|
|
| |
llvm-svn: 129681
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it down. we effectively were compile the testcase into:
void test14(int x) {
switch (x) {
case 11: break;
case 42: test14(97); // fallthrough
default: test14(42); break;
which is not the same thing at all. This fixes a miscompilation of
MallocBench/gs seen on the clang-x86_64-linux-fnt buildbot.
llvm-svn: 129679
|
| |
|
|
| |
llvm-svn: 129674
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
turns out that a field or base needs to be laid out in the tail padding of
the base, CGRecordLayoutBuilder::ResizeLastBaseFieldIfNecessary will convert
it to an array of i8.
I've audited the new test results to make sure that they are still valid. I've
also verified that we pass a self-host with this change.
This (finally) fixes PR5589!
llvm-svn: 129673
|
| |
|
|
| |
llvm-svn: 129672
|
| |
|
|
|
|
| |
build.
llvm-svn: 129660
|
| |
|
|
|
|
|
|
| |
empty IR block,
a -O0 code quality issue.
llvm-svn: 129652
|
| |
|
|
|
|
|
|
|
| |
are trivial. This exposes opportunities earlier, and allows fastisel
to do good things with these at -O0.
This addresses rdar://9289468 - clang doesn't fold memset_chk at -O0
llvm-svn: 129651
|
| |
|
|
|
|
|
|
| |
integer constants into select at -O0
by making the isCheapEnoughToEvaluateUnconditionally predicate handle anything that folds to a constant. In particular, we now fold enums.
llvm-svn: 129649
|
| |
|
|
| |
llvm-svn: 129627
|
| |
|
|
| |
llvm-svn: 129625
|
| |
|
|
|
|
| |
Add test case.
llvm-svn: 129617
|
| |
|
|
|
|
| |
// rdar://9287695
llvm-svn: 129615
|
| |
|
|
|
|
| |
Monrocq
llvm-svn: 129614
|
| |
|
|
|
|
|
|
|
| |
Objective-C pointer to void* as a "conversion to void*". This allows
us to prefer an Objective-C object pointer conversion to a superclass
object pointer over an Objective-C object pointer conversion to
cv-void*. Fixes PR9735.
llvm-svn: 129603
|
| |
|
|
|
|
|
|
|
|
| |
address space. I could see that this functionality would be useful,
but not in its current form (where the address space is ignored):
rather, we'd want to encode the address space into the parameter list
passed to operator new/operator delete somehow, which would require a
bunch more semantic analysis.
llvm-svn: 129593
|
| |
|
|
|
|
| |
and output file is not writable. // rdar://9286457.
llvm-svn: 129587
|