| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 187765
|
| |
|
|
|
|
| |
fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention...
llvm-svn: 187762
|
| |
|
|
|
|
|
| |
This patch was created by Lawrence Crowl and reviewed in:
http://llvm-reviews.chandlerc.com/D963
llvm-svn: 187738
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
function: it can't be 'void' and it can't be an initializer list. We give a
hard error for these rather than treating them as undefined behavior (we can
and probably should do the same for non-POD types in C++11, but as of this
change we don't).
Slightly rework the checking of variadic arguments in a function with a format
attribute to ensure that certain kinds of format string problem (non-literal
string, too many/too few arguments, ...) don't suppress this error.
llvm-svn: 187735
|
| |
|
|
|
|
|
|
|
| |
Sema::PerformObjectMemberConversion assumed that the Qualifier it was
given holds a type. However, the specifier could hold just a namespace.
In this case, we should ignore the qualifier and not attempt to cast to
it.
llvm-svn: 187715
|
| |
|
|
|
|
| |
undefined element value to match IR capabilities.
llvm-svn: 187694
|
| |
|
|
|
|
|
|
|
|
| |
We seem to have ended up with both an inlined check of permitted NEON base
types and a call to a function.
Since the outer if was (I believe) strictly weaker than the one in the
function, there's no actual user-visible behaviour change, so no tests.
llvm-svn: 187652
|
| |
|
|
| |
llvm-svn: 187644
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Ana Pazos
- Completed implementation of instruction formats:
AdvSIMD three same
AdvSIMD modified immediate
AdvSIMD scalar pairwise
- Completed implementation of instruction classes
(some of the instructions in these classes
belong to yet unfinished instruction formats):
Vector Arithmetic
Vector Immediate
Vector Pairwise Arithmetic
- Initial implementation of instruction formats:
AdvSIMD scalar two-reg misc
AdvSIMD scalar three same
- Intial implementation of instruction class:
Scalar Arithmetic
- Initial clang changes to support arm v8 intrinsics.
Note: no clang changes for scalar intrinsics function name mangling yet.
- Comprehensive test cases for added instructions
To verify auto codegen, encoding, decoding, diagnosis, intrinsics.
llvm-svn: 187568
|
| |
|
|
|
|
| |
resolved statically.
llvm-svn: 187564
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
pointers to function type
We would disallow the case where the overloaded member expression is
coming from an address-of operator but we wouldn't issue any diagnostics
when the overloaded member expression comes by way of a function to
pointer decay cast.
Clang's implementation of DR61 is now seemingly complete.
llvm-svn: 187559
|
| |
|
|
|
|
|
| |
retainable pointer is passed to an audited CF function
expecting CF type. // rdar://14569171
llvm-svn: 187543
|
| |
|
|
|
|
|
|
| |
passing a retainable object arg to a CF audited function
expecting a CF object type. Issue a normal type mismatch
diagnostic. This is wip // rdar://14569171
llvm-svn: 187532
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change unifies the logic for template instantiation of methods and
functions declared with typedefs.
It ensures that SubstFunctionType() always fills the Params out param
with non-null ParmVarDecls or returns null.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1135
llvm-svn: 187528
|
| |
|
|
| |
llvm-svn: 187521
|
| |
|
|
|
|
| |
to avoid future false positives. // rdar://14569171
llvm-svn: 187509
|
| |
|
|
|
|
|
|
| |
for parameters passed to CF audited functions
to be used for better diagnostics. Current set but
unused. // rdar://14569171
llvm-svn: 187508
|
| |
|
|
|
|
| |
changing '->' to '.' when there is no operator-> defined for a class.
llvm-svn: 187504
|
| |
|
|
|
|
|
|
| |
out of ImpCastExprToType and to the caller site
as appropriate. This is in prep. to do more work for
// rdar://14569171
llvm-svn: 187503
|
| |
|
|
| |
llvm-svn: 187467
|
| |
|
|
|
|
| |
err_attribute_argument_type.
llvm-svn: 187420
|
| |
|
|
| |
llvm-svn: 187419
|
| |
|
|
| |
llvm-svn: 187400
|
| |
|
|
|
|
| |
of using custom logic. No functional changes intended.
llvm-svn: 187398
|
| |
|
|
|
|
| |
Patch by Ethan Jackson.
llvm-svn: 187365
|
| |
|
|
|
|
|
|
| |
__builtin_shufflvector don't have the same number of elements or the mask isn't an integer vector.
Previously a diagnostic was issued, but the code went ahead and built the ShuffleVectorExpr. While I'm here also simplify a couple lines by wrapping the return ExprError around the Diag calls.
llvm-svn: 187344
|
| |
|
|
| |
llvm-svn: 187334
|
| |
|
|
|
|
|
|
|
|
| |
This matches how we normally perform semantic analysis for other sorts
of invalid expressions: it means we don't have to reason about invalid
sub-expressions.
Fixes PR16680.
llvm-svn: 187276
|
| |
|
|
|
|
|
| |
no return type is specified, C++11 will deduce a cv-qualified return type in
some cases, but C++1y never will.
llvm-svn: 187275
|
| |
|
|
|
|
| |
return type has already been determined to be a type containing an 'auto'.
llvm-svn: 187266
|
| |
|
|
|
|
| |
Based on patch by Yunzhong Gao.
llvm-svn: 187176
|
| |
|
|
|
|
|
|
| |
It turns out that Plum Hall depends on us not emitting an error on
integer literals which fit into long long, but fit into
unsigned long long. So C99 conformance requires not conforming to C99. :)
llvm-svn: 187172
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sufficient to only consider names visible at the point of instantiation,
because that may not include names that were visible when the template was
defined. More generally, if the instantiation backtrace goes through a module
M, then every declaration visible within M should be available to the
instantiation. Any of those declarations might be part of the interface that M
intended to export to a template that it instantiates.
The fix here has two parts:
1) If we find a non-visible declaration during name lookup during template
instantiation, check whether the declaration was visible from the defining
module of all entities on the active template instantiation stack. The defining
module is not the owning module in all cases: we look at the module in which a
template was defined, not the module in which it was first instantiated.
2) Perform pending instantiations at the end of a module, not at the end of the
translation unit. This is general goodness, since it significantly cuts down
the amount of redundant work that is performed in every TU importing a module,
and also implicitly adds the module containing the point of instantiation to
the set of modules checked for declarations in a lookup within a template
instantiation.
There's a known issue here with template instantiations performed while
building a module, if additional imports are added later on. I'll fix that
in a subsequent commit.
llvm-svn: 187167
|
| |
|
|
|
|
| |
Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html
llvm-svn: 187143
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 187047
|
| |
|
|
|
|
|
|
| |
diagnostic for clarity; updated almost all of the affected test cases.
Thanks to Fariborz Jahanian for the suggestion!
llvm-svn: 186980
|
| |
|
|
| |
llvm-svn: 186966
|
| |
|
|
|
|
| |
Adding missing test cases for the diagnostics.
llvm-svn: 186944
|
| |
|
|
|
|
| |
Added a test case for the diagnostic.
llvm-svn: 186942
|
| |
|
|
|
|
| |
diagnostic. This makes the diagnostic more consistent.
llvm-svn: 186940
|
| |
|
|
|
|
| |
count reported matches reality.
llvm-svn: 186936
|
| |
|
|
|
|
|
| |
* Allow ns, us, ms, s, min, h as numeric ud-suffixes
* Allow s as string ud-suffix
llvm-svn: 186933
|
| |
|
|
|
|
|
|
| |
bool, half, pointers and structs / unions containing any
of these are not allowed. Does not yet reject size_t and
related integer types that are also disallowed.
llvm-svn: 186908
|
| |
|
|
|
|
|
|
| |
Switch some warnings over to errors which should never have been warnings
in the first place. (Also, a minor fix to the preprocessor rules for
integer literals while I'm here.)
llvm-svn: 186903
|
| |
|
|
|
|
|
|
|
|
| |
getLocForEndOfToken() isn't guaranteed to succeed; if it doesn't, make sure
we do something sane.
Fixes PR16673. I'm not sure how to write a testcase for this short of grepping
through the diagnostic output.
llvm-svn: 186889
|
| |
|
|
|
|
| |
Warning should be emitted only for InitListExpr nodes.
llvm-svn: 186859
|
| |
|
|
| |
llvm-svn: 186848
|
| |
|
|
|
|
| |
when initializing aggregate/union types, no matter if static or not.
llvm-svn: 186817
|
| |
|
|
|
|
|
|
|
|
|
|
| |
No functionality change.
In Sema helper functions:
* renamed isTypeName as HasTypenameKeyword
In UsingDecl:
* renamed get/setUsingLocation to get/setUsingLoc
* renamed is/setTypeName as has/setTypename
llvm-svn: 186816
|
| |
|
|
| |
llvm-svn: 186807
|