| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
|
|
|
|
|
|
| |
which is simpler to use and provide.
llvm-svn: 48051
|
|
|
|
| |
llvm-svn: 47954
|
|
|
|
|
|
| |
by Nuno Lopes for PR2089
llvm-svn: 47787
|
|
|
|
| |
llvm-svn: 47775
|
|
|
|
| |
llvm-svn: 47753
|
|
|
|
|
|
|
|
|
| |
rename QualType::getQualifiers to getCVRQualifiers.
Add some fixme's and clean up some code relevant to qualifiers.
Change ASQualType to contain a Type* instead of a QualType.
Any CVR qualifiers should be on the outer qual type.
llvm-svn: 47398
|
|
|
|
|
|
|
|
|
| |
allows you to do things like
typedef __attribute__(( ocu_vector_type(4))) float float4;
float4 *x;
float y = x[0][2];
llvm-svn: 47295
|
|
|
|
|
|
|
|
| |
is an array type not a pointer type. This requires updating some
diags that change and updating the code generator to handle the
proper form of strings.
llvm-svn: 46941
|
|
|
|
|
|
|
|
| |
spec-compliant.
I'll put together some testcases in a bit.
llvm-svn: 46937
|
|
|
|
| |
llvm-svn: 46906
|
|
|
|
| |
llvm-svn: 46905
|
|
|
|
| |
llvm-svn: 46873
|
|
|
|
|
|
| |
gets kind of annoying.
llvm-svn: 46872
|
|
|
|
| |
llvm-svn: 46841
|
|
|
|
| |
llvm-svn: 46830
|
|
|
|
| |
llvm-svn: 46650
|
|
|
|
| |
llvm-svn: 46638
|
|
|
|
|
|
| |
has the register qualifier, if the array is really a pointer.
llvm-svn: 46634
|
|
|
|
| |
llvm-svn: 46601
|
|
|
|
| |
llvm-svn: 46572
|
|
|
|
|
|
|
| |
that causes this isn't really correct, but if we're going to accept
this, it should come up with a consistent AST.
llvm-svn: 46557
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
makes sure function calls that don't have a prototype get the default function/array conversion.
Patch by Eli Friedman!
llvm-svn: 46489
|
|
|
|
| |
llvm-svn: 46328
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__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
|
|
|
|
|
|
|
|
|
|
| |
a method named ImpCastExprToType in Sema.
Use this method to insert implicit casts for case statements from their
operand type to the condition type of the switch. This fixes a crash on
test/CodeGen/statements.c, reported by Eli Friedman.
llvm-svn: 46083
|
|
|
|
|
|
|
|
|
|
| |
Sema::UsualArithmeticConversions()).
A FIXME remains to verify the conversion rules are consistent with GCC.
Thanks to Eli for the new/improved test case...
llvm-svn: 46022
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove diagnostics from Sema::CheckIndirectionOperand(). C89/C99 allow dereferencing an incomplete type. clang appears to be emulating some incorrect gcc behavior (see below).
void
foo (void)
{
struct b;
struct b* x = 0;
struct b* y = &*x; // gcc produces an error ("dereferencing pointer to incomplete type")
}
With this patch, the above is now allowed.
Bug/Patch by Eli Friedman!
llvm-svn: 45933
|
|
|
|
| |
llvm-svn: 45915
|
|
|
|
|
|
|
|
| |
of const char, and it should error if it occurs outside a function.
Is it valid in an objc method? If so we should handle that too.
llvm-svn: 45910
|
|
|
|
|
|
| |
Eli Friedman!
llvm-svn: 45906
|
|
|
|
|
|
|
|
|
|
| |
noticed it was missing).
- Rename CheckInitializer() to CheckInitializerTypes().
- Removed the isStatic argument to CheckInitializerTypes() and all of it's subroutines. Checking for constant expressions is now done separately.
- Added CheckForConstantInitializer().
llvm-svn: 45840
|
|
|
|
| |
llvm-svn: 45782
|
|
|
|
|
|
| |
to precede the check for two pointer operands.
llvm-svn: 45732
|
|
|
|
|
|
|
| |
some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715
|
|
|
|
| |
llvm-svn: 45706
|
|
|
|
| |
llvm-svn: 45666
|
|
|
|
| |
llvm-svn: 45665
|
|
|
|
|
|
| |
pretty print the type name for void.
llvm-svn: 45664
|
|
|
|
| |
llvm-svn: 45602
|
|
|
|
|
|
| |
it explicitly for vectors. This allows us to unnest some code.
llvm-svn: 45600
|
|
|
|
|
|
| |
stripping down to canonical types early.
llvm-svn: 45599
|
|
|
|
| |
llvm-svn: 45597
|