| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
"new" expression. This matches GCC's parser. Test is forthcoming.
llvm-svn: 129592
|
| |
|
|
|
|
| |
and output file is not writable. // rdar://9286457.
llvm-svn: 129587
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dealing with address-space- and GC-qualified pointers. Previously,
these qualifiers were being treated just like cvr-qualifiers (in some
cases) or were completely ignored, leading to uneven behavior. For
example, const_cast would allow conversion between pointers to
different address spaces.
The new semantics are fairly simple: reinterpret_cast can be used to
explicitly cast between pointers to different address spaces
(including adding/removing addresss spaces), while
static_cast/dynamic_cast/const_cast do not tolerate any changes in the
address space. C-style casts can add/remove/change address spaces
through the reinterpret_cast mechanism. Other non-CVR qualifiers
(e.g., Objective-C GC qualifiers) work similarly.
As part of this change, I tweaked the "casts away constness"
diagnostic to use the term "casts away qualifiers". The term
"constness" actually comes from the C++ standard, despite the fact
that removing "volatile" also falls under that category. In Clang, we
also have restrict, address spaces, ObjC GC attributes, etc., so the
more general "qualifiers" is clearer.
llvm-svn: 129583
|
| |
|
|
|
|
|
|
| |
cases where stand-alone ivar can be looked up
in shadowed object. To fix gcc compatibility
breakage. // rdar://9284603
llvm-svn: 129576
|
| |
|
|
| |
llvm-svn: 129573
|
| |
|
|
| |
llvm-svn: 129572
|
| |
|
|
| |
llvm-svn: 129570
|
| |
|
|
| |
llvm-svn: 129567
|
| |
|
|
| |
llvm-svn: 129565
|
| |
|
|
| |
llvm-svn: 129564
|
| |
|
|
|
|
| |
should have no arguments or parameters. Patch by Michael Han!
llvm-svn: 129560
|
| |
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129559
|
| |
|
|
| |
llvm-svn: 129555
|
| |
|
|
|
|
|
| |
As an extension, generic selection support has been added for all
supported languages. The syntax is the same as for C1X.
llvm-svn: 129554
|
| |
|
|
| |
llvm-svn: 129553
|
| |
|
|
|
|
| |
named the samed as the pragma and they do not interfere (ie. cl_khr_fp64).
llvm-svn: 129549
|
| |
|
|
|
|
|
| |
is so broken that Sema can't form a declaration for it, don't bother
trying to parse the definition later. Fixes <rdar://problem/9221993>.
llvm-svn: 129547
|
| |
|
|
|
|
|
|
| |
instantiation), be sure to add the transformed declaration into the
current DeclContext. Also, remove the -Wuninitialized hack that works
around this bug. Fixes <rdar://problem/9200676>.
llvm-svn: 129544
|
| |
|
|
|
|
| |
draft standard (N3291).
llvm-svn: 129541
|
| |
|
|
|
|
|
|
| |
and is interpreted as "[:" because of the digraph "<:". When found, give an error with a fix-it to add whitespace between the "<" and "::".
Patch by Richard Trieu! Plus a small tweak from me to deal with one of the tokens coming from a macro.
llvm-svn: 129540
|
| |
|
|
|
|
| |
// rdar://9208404
llvm-svn: 129536
|
| |
|
|
|
|
|
| |
completion, look through block pointer and function pointer types to the
result type of the block/function. Fixes <rdar://problem/9282583>.
llvm-svn: 129535
|
| |
|
|
|
|
|
|
|
|
| |
convention selection (AAPCS or
AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86.
In particular, all library functions should always be AAPCS regardless of floating point ABI used.
llvm-svn: 129534
|
| |
|
|
| |
llvm-svn: 129525
|
| |
|
|
|
|
|
| |
diagnosing it as an error rather than looping infinitely. Also,
explicitly disallow @defs in Objective-C++. Fixes <rdar://problem/9260136>.
llvm-svn: 129521
|
| |
|
|
|
|
| |
function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there.
llvm-svn: 129516
|
| |
|
|
| |
llvm-svn: 129514
|
| |
|
|
|
|
| |
the wrong order. The effect was that all but the first chain-include files was ignored for subsequent compilations.
llvm-svn: 129513
|
| |
|
|
|
|
| |
CFGBuilder::VisitUnaryExprOrTypeTraitExpr().
llvm-svn: 129499
|
| |
|
|
|
|
| |
functionality intended.
llvm-svn: 129496
|
| |
|
|
|
|
|
| |
DiagnosticBuilder::AddFixItHint: they will be dropped along with any
other (possibly valid) fixits later.
llvm-svn: 129495
|
| |
|
|
|
|
|
|
|
|
| |
that the class
named by the nested-name-specifier is same or base of the class in which the member expression appears.
It seems we also had an ill-formed test case, mon dieu! Fixes rdar://8576107.
llvm-svn: 129493
|
| |
|
|
|
|
| |
in functionality intended.
llvm-svn: 129491
|
| |
|
|
|
|
|
| |
is 1 element smaller than the string, because we can just strip off the last
null character. This matches GCC.
llvm-svn: 129490
|
| |
|
|
|
|
| |
string or not.
llvm-svn: 129488
|
| |
|
|
|
|
| |
// rdar://9091893
llvm-svn: 129481
|
| |
|
|
|
|
| |
defined in a macro. // rdar://9091893
llvm-svn: 129465
|
| |
|
|
|
|
| |
generated by a regular 'load' now.
llvm-svn: 129464
|
| |
|
|
|
|
| |
even if an identifier could resolve to a builtin.
llvm-svn: 129438
|
| |
|
|
| |
llvm-svn: 129434
|
| |
|
|
| |
llvm-svn: 129433
|
| |
|
|
|
|
|
|
|
|
|
| |
evaluated and unevaluated contexts. Add some testing of sizeof and
typeid.
Both of the typeid tests added here were triggering warnings previously.
Now the one false positive is suppressed without suppressing the warning
on actually buggy code.
llvm-svn: 129431
|
| |
|
|
|
|
| |
RewriterOptions struct.
llvm-svn: 129430
|
| |
|
|
|
|
|
|
|
| |
take it!
I wasn't able to get __builtin_ia32_loaddqu to transform into an unaligned
load...I'll have to look into it further.
llvm-svn: 129427
|
| |
|
|
| |
llvm-svn: 129426
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the type of one of the base classes then downgrade the missing typename error to a warning. Up to now this is the only case I found where MSVC doesn't require "typename" at class scope. Really strange!
This fixes 1 error when parsing the MSVC 2008 header files.
Example:
template<class T> class A {
public:
typedef int TYPE;
};
template<class T> class B : public A<T> {
public:
A<T>::TYPE a; // no typename required because A<T> is a base class.
};
llvm-svn: 129425
|
| |
|
|
| |
llvm-svn: 129424
|
| |
|
|
| |
llvm-svn: 129420
|