| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
they are of type wchar_t[].
llvm-svn: 47004
|
|
|
|
| |
llvm-svn: 47003
|
|
|
|
| |
llvm-svn: 46919
|
|
|
|
|
|
|
|
| |
submitted by Neil Booth.
Neil, can you point me to the place in the C99 spec that says this is allowed? I thought Expr::isLvalue() conformed to the spec, which says "C99 6.3.2.1: an lvalue is an expression with an object type or an incomplete type other than void.". Please advise.
llvm-svn: 46917
|
|
|
|
| |
llvm-svn: 46868
|
|
|
|
| |
llvm-svn: 46867
|
|
|
|
| |
llvm-svn: 46855
|
|
|
|
|
|
| |
in a smaller encoding on disk.
llvm-svn: 46832
|
|
|
|
| |
llvm-svn: 46830
|
|
|
|
| |
llvm-svn: 46806
|
|
|
|
| |
llvm-svn: 46799
|
|
|
|
|
|
|
| |
eliminating a bunch of forwarding methods and generally
simplifying things.
llvm-svn: 46792
|
|
|
|
| |
llvm-svn: 46777
|
|
|
|
|
|
| |
qualifiers use the __attribute__((address_space(id))) syntax.
llvm-svn: 46691
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
next @catch)
and put the the next ObjcAtCatchStmt* as part of SubExprs. This fixes a bug with
iterating over the children of ObjcAtCatch, where the next @catch was not
properly being iterated over as a child.
Altered serialization of ObjCAtCatchStmt to reflect this new layout of
its subexpressions, and fixed an ownership issue with the next @catch not
being serialized as an owned pointer.
llvm-svn: 46647
|
|
|
|
| |
llvm-svn: 46594
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used to support CFConstantStrings. Can be extended to support other built-in functions.
This allows the following code to compile without error...
#include <CoreFoundation/CoreFoundation.h>
#define CONST_STRING_DECL(S, V) const CFStringRef S = (const CFStringRef)__builtin___CFStringMakeConstantString(V);
CONST_STRING_DECL(kCFTimeZoneSystemTimeZoneDidChangeNotification, "kCFTimeZoneSystemTimeZoneDidChangeNotification")
llvm-svn: 46592
|
|
|
|
|
|
|
|
|
|
| |
pretty-print a block's terminator.
When building CFGs, for IfStmts ('if'), we no longer add the ParenExpr
that is the subexpression of the IfStmt to the CFG; instead we add its
first descendant subexpression that is not a ParenExpr.
llvm-svn: 46580
|
|
|
|
| |
llvm-svn: 46572
|
|
|
|
| |
llvm-svn: 46566
|
|
|
|
| |
llvm-svn: 46558
|
|
|
|
|
|
| |
ObjCAtThrowStmt::getSourceRange.
llvm-svn: 46547
|
|
|
|
|
|
| |
@sychronized to be rewritten.
llvm-svn: 46533
|
|
|
|
|
|
|
|
|
| |
- Some minor optimizations of the encoding format for ObjCAtSynchronizedStmt.
- Reordered methods so that the deserialization methods for
ObjCAtSynchronizedStmt appear in alphabetical order with the corresponding
methods of the other AST nodes.
llvm-svn: 46529
|
|
|
|
| |
llvm-svn: 46524
|
|
|
|
|
|
|
|
| |
qualifiers match. The comment and C99 citation for this routine were correct...the code needed to conform to the comment/spec. This fixes the test added below.
Tightening up this routine forced tweaks to Sema::CheckSubtractionOperands() and Sema::CheckCompareOperands(). For example, they both need to operate on the unqualified pointee...
llvm-svn: 46522
|
|
|
|
| |
llvm-svn: 46520
|
|
|
|
| |
llvm-svn: 46515
|
|
|
|
|
|
| |
unqualified parameter types (per C99 6.7.5.3p15).
llvm-svn: 46472
|
|
|
|
|
|
|
|
|
|
|
|
| |
(http://llvm.org/viewvc/llvm-project?rev=46361&view=rev) with the addition of
some previously missing NULL pointer checks.
Modified the UninitializedValues analysis to not expect that every Expr* at the
block-level is a block-level expression (we probably need to change the name of
such expressions to something truer to their meaning).
llvm-svn: 46380
|
|
|
|
|
|
| |
I diagnose the source of the failures it causes in the test suite.
llvm-svn: 46376
|
|
|
|
| |
llvm-svn: 46364
|
|
|
|
|
|
|
| |
include the assignment expressions whose result (as in the value of the
expression) is used by other expressions.
llvm-svn: 46361
|
|
|
|
| |
llvm-svn: 46343
|
|
|
|
| |
llvm-svn: 46328
|
|
|
|
| |
llvm-svn: 46268
|
|
|
|
| |
llvm-svn: 46260
|
|
|
|
| |
llvm-svn: 46231
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is because GNU-style Statement-expressions cause the last statement in the
statement-expression to act like an expression.
We now have two notions: block-level statements and block-level expressions.
The former are all Stmt* that appear in the list of statements in CFGBlocks. The
latter is the subset of the former; these block-level statements are used as
subexpressions somewhere in the AST. CFG::isBlockExpr() returns true for the
latter, not the former (previously isBlockExpr() always returned true for
non-Expr Stmt*).
Modified the LiveVariables analysis to also track liveness state for block-level
expressions (using the updated definition of block-level expressions).
Modified the dataflow solver so that when it records values for block-level
statements, it records the dataflow value *before* the transfer function for a
Stmt* is evaluated (not after). This is more in sync in what clients will want.
Modified CFGStmtVisitor to record the current block-level statement.
llvm-svn: 46143
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__builtin_overload takes 2 or more arguments:
0) a non-zero constant-expr for the number of arguments the overloaded
functions will take
1) the arguments to pass to the matching overloaded function
2) a list of functions to match.
The return type of __builtin_overload is inferred from the function whose args
match the types of the arguments passed to the builtin. For example:
float a;
float sinf(float);
int sini(int);
float b = __builtin_overload(1, a, sini, sinf);
Says that we are overloading functions that take one argument, and trying to
pass an argument of the same type as 'a'. sini() does not match since it takes
and argument of type int. sinf does match, so at codegen time this will turn
into float b = sinf(a);
llvm-svn: 46132
|
|
|
|
|
|
|
|
| |
method name
size in accordance with how rewriter synthesizes method name.
llvm-svn: 46131
|
|
|
|
|
|
|
| |
Refactored the use of this method into both the Sema module and Analysis module,
which were using their own static functions that did the same thing.
llvm-svn: 46129
|
|
|
|
|
|
|
|
| |
correctly,
when creating its type.
llvm-svn: 46109
|
|
|
|
| |
llvm-svn: 46103
|
|
|
|
|
|
| |
Bug submitted by Eli.
llvm-svn: 46102
|
|
|
|
|
|
|
|
|
|
| |
general, we will keep the lowest level Type predicates "pure" (i.e. true to the C99 spec).
- Modify Sema::UsualArithmeticConversions() to work with the new definition of Type::isComplexType().
This is a nice cleanup and also fixes a bug submitted by Eli (which I've added to the test suite).
llvm-svn: 46005
|
|
|
|
|
|
|
|
| |
- Add Type::isComplexIntegerType(), Type::getAsComplexIntegerType().
- Don't inlude complex types with Type::isIntegerType(), which is too general.
- Use the new predicates in Sema::UsualArithmeticConversions() to recognize/convert the types.
llvm-svn: 45992
|
|
|
|
|
|
| |
Bug submitted by Eli.
llvm-svn: 45976
|
|
|
|
|
|
|
| |
serializing the subexpression (Init), as this results in a more efficient
encoding in the bitstream.
llvm-svn: 45967
|
|
|
|
|
|
|
|
| |
implement C99 6.5.2.5p6. This could have been done without modifying the AST (by checking the decl type and passing the info down to isContextExpr), however we concluded this is more desirable.
Bug/patch by Eli Friedman!
llvm-svn: 45966
|