| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 108676
|
|
|
|
| |
llvm-svn: 108670
|
|
|
|
| |
llvm-svn: 108669
|
|
|
|
| |
llvm-svn: 108668
|
|
|
|
|
|
|
|
|
| |
taking it in pieces.
- Fixes a problem where the Clang executable path was not initialized properly
on Win32, because sys::Path::getBasename() doesn't do what I always think it
does. Imagine that, a sys::Path interface that is confusing!
llvm-svn: 108667
|
|
|
|
| |
llvm-svn: 108659
|
|
|
|
|
|
| |
fixed return types.
llvm-svn: 108657
|
|
|
|
|
|
|
| |
linkage specification. Not sure if this is the ideal fix, but I'm reasonably
sure it's correct vs. gcc.
llvm-svn: 108656
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template
The rationale is that we are copying the entire definition including
parameter names which may differ between the declaration and the
definition.
This is particularly important if any parameters are unnamed in the
declaration, as a DeclRef to an unnamed ParmVarDecl would cause the
pretty printer to produce invalid output.
llvm-svn: 108643
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
their call expressions synthetically have the "deduced" types based on their
first argument. We only insert conversions in the AST for arguments whose
values require conversion to match the value type expected. This keeps PR7600
closed by maintaining the return type, but avoids assertions due to unexpected
implicit casts making the type unsigned (test case added from Daniel).
The magic is moved into the codegen for the atomic builtin which inserts the
casts as needed at the IR level to raise the type to an integer suitable for
the LLVM intrinsic. This shouldn't cause any real change in functionality, but
now we can make the builtin be more truly polymorphic.
llvm-svn: 108638
|
|
|
|
| |
llvm-svn: 108633
|
|
|
|
|
|
| |
try to evaluate the initializer as a constant.
llvm-svn: 108632
|
|
|
|
|
|
|
| |
incomplete union (PR5692) and incomplete enum, and fixes obscure
accepts-invalid on cast to incomplete struct.
llvm-svn: 108630
|
|
|
|
| |
llvm-svn: 108627
|
|
|
|
|
|
|
| |
allow invalid token pastes (when in -fms-extensions mode)
with -Wno-invalid-token-paste
llvm-svn: 108624
|
|
|
|
| |
llvm-svn: 108621
|
|
|
|
|
|
|
| |
Let AnalysisContext contain a TranslationUnit.
Let CallEnter refer to an AnalysisContext instead of a FunctionDecl.
llvm-svn: 108617
|
|
|
|
|
|
| |
removing a bogus assertion.
llvm-svn: 108602
|
|
|
|
|
|
|
| |
part of the new property synthesis by default.
wip.
llvm-svn: 108599
|
|
|
|
|
|
| |
multiple reasons. Rethrow with _objc_exception_throw instead. Fixes PR7656.
llvm-svn: 108595
|
|
|
|
|
|
| |
an APFloat with different "float semantics" than the compared float literal.
llvm-svn: 108590
|
|
|
|
|
|
| |
metadata record. WIP
llvm-svn: 108578
|
|
|
|
|
|
| |
message send expressions who call methods that return references.
llvm-svn: 108559
|
|
|
|
|
|
| |
reuse it.
llvm-svn: 108551
|
|
|
|
|
|
|
|
|
|
| |
it into the default path-sensitive analysis options.
- Added checks for static local variables, self assigned parameters, and truncating/extending self assignments
- Removed command line option (now default with --analyze)
- Updated test cases to pass with idempotent operation warnings
llvm-svn: 108550
|
|
|
|
| |
llvm-svn: 108542
|
|
|
|
|
|
| |
files. WIP
llvm-svn: 108537
|
|
|
|
|
|
|
|
|
| |
expression such as the "foo" in "this->blah.foo<1, 2>", and we can't
look into the type of "this->blah" (e.g., because it is dependent),
look into the local scope of a template of the same name. Fixes
<rdar://problem/8198511>.
llvm-svn: 108531
|
|
|
|
| |
llvm-svn: 108528
|
|
|
|
|
|
|
| |
diagnostic. Instead, put it and the "declaration does not declare
anything" warning into -Wmissing-declarations.
llvm-svn: 108527
|
|
|
|
| |
llvm-svn: 108526
|
|
|
|
|
|
|
|
| |
purpose of access control. Fixes PR7644.
I can't actually find anything directly justifying this, but it seems obvious.
llvm-svn: 108521
|
|
|
|
|
|
| |
is well defined, it resets to the default alignment.
llvm-svn: 108508
|
|
|
|
| |
llvm-svn: 108505
|
|
|
|
| |
llvm-svn: 108502
|
|
|
|
| |
llvm-svn: 108501
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
includes
handling the parsing of scanf format strings and hooking the checking into Sema.
Most of this checking logic piggybacks on what was already there for checking printf format
strings, but the checking logic has been refactored to support both.
What is left to be done is to support argument type checking in format strings and of course
fix the usual tail of bugs that will follow.
llvm-svn: 108500
|
|
|
|
|
|
|
|
|
|
| |
represent builtins that have the "scanf" attribution (via the format attribute) just
like we do with printf functions. Follow-up work is needed to add similar support
for fscanf et al.
This is to support format-string checking for scanf functions.
llvm-svn: 108499
|
|
|
|
|
|
| |
asm operand twice.
llvm-svn: 108489
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This issue here is that /usr/include/Blocks.h wants to define some of the
block runtime globals as weak, depending on the target. This doesn't work in
Clang because we aren't using the AST decl for these globals.
- The fix is a pretty gross hack which just watches all the decls for the
specific blocks globals we need to know about; if we see one we use it,
otherwise we use the hand coded type.
In time, I would like to clean this up by changing IRgen to ask Sema/AST for
the decl, which would then be lazily loaded from the builtin table if
necessary. This could be used in a whole host of places in IRgen and would
get rid of a lot of grotty hand coding of LLVM IR; however, we need some
extra Sema support for this as well as support for builtin global variables.
llvm-svn: 108482
|
|
|
|
| |
llvm-svn: 108481
|
|
|
|
| |
llvm-svn: 108480
|
|
|
|
|
|
|
| |
the order they appeared in the translation unit. If they get emitted, put them
in their proper order. Fixes rdar://problem/7458115
llvm-svn: 108477
|
|
|
|
|
|
| |
codegenerator preserve info in case the symbol is deleted.
llvm-svn: 108471
|
|
|
|
|
|
| |
with always_inline attribute. Thanks to Howard for the tip.
llvm-svn: 108469
|
|
|
|
|
|
| |
Tested by namespace.exp and virtfunc.exp from gdb testsuite.
llvm-svn: 108468
|
|
|
|
|
|
| |
for string literals.
llvm-svn: 108464
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parser is looking at a declaration or an expression, use a '=' to
conclude that we are parsing a declaration.
This is wrong. However, our previous approach of finding a comma after
the '=' is also wrong, because the ',' could be part of a
template-argument-list. So, for now we're going to use the same wrong
heuristic as GCC and Visual C++, because less real-world code is
likely to be broken this way. I've opened PR7655 to keep track of our
wrongness; note also the XFAIL'd test.
Fixes <rdar://problem/8193163>.
llvm-svn: 108459
|
|
|
|
|
|
|
|
|
| |
with the proper spelling of "non-class prvalue". Silly me, I think
class rvalues were xvalues rather than prvalues!
Hah hah hah.
llvm-svn: 108443
|
|
|
|
|
|
| |
that we don't warn when there isn't going to be any computation anyway.
llvm-svn: 108442
|