Chris Lattner
d864daf5c6
extwarn about decls intermixed with code in c89 mode.
...
llvm-svn: 41477
2007-08-27 04:29:41 +00:00
Steve Naroff
808eb8fe88
Add Type::getAsBuiltinType() and Type::builtinTypesAreCompatible().
...
Modified Type::typesAreCompatible() to use the above.
This fixes the following bug submitted by Keith Bauer (thanks!).
int equal(char *a, const char *b)
{
return a == b;
}
Also tweaked Sema::CheckCompareOperands() to ignore the qualifiers when
comparing two pointer types (though it doesn't relate directly to this bug).
llvm-svn: 41476
2007-08-27 04:08:11 +00:00
Steve Naroff
fc6ffa2513
Tweak a comment and assert.
...
llvm-svn: 41475
2007-08-27 01:41:48 +00:00
Steve Naroff
9091ef703c
Replaced ASTContext::maxComplexType() with ASTContext::getFloatingTypeOfSizeWithinDomain().
...
Changed Sema::UsualArithmeticConversions to correctly implement complex/float conversions,
using maxFloatingType() with getFloatingTypeOfSizeWithinDomain().
llvm-svn: 41474
2007-08-27 01:27:54 +00:00
Chris Lattner
dfaf9f8c2f
implement a fixme: __extension__ marker on decls in compound stmts.
...
llvm-svn: 41473
2007-08-27 01:01:57 +00:00
Chris Lattner
bda69f80bc
move EmitAggregateCopy into AggExprEmitter
...
llvm-svn: 41472
2007-08-26 23:13:56 +00:00
Chris Lattner
2dd1b72bde
Fix test/Parser/if-scope-*.c. Patch by Neil Booth!
...
llvm-svn: 41471
2007-08-26 23:08:06 +00:00
Chris Lattner
c1045b1a69
remove dead code
...
llvm-svn: 41470
2007-08-26 23:02:57 +00:00
Chris Lattner
1916b88723
remove dead protos
...
llvm-svn: 41469
2007-08-26 23:01:23 +00:00
Chris Lattner
6c555f96e8
eliminate EmitAnyExpr, inlining it and simplifying it into its only caller.
...
llvm-svn: 41468
2007-08-26 22:58:05 +00:00
Chris Lattner
a811da5fcd
eliminate use of EmitAnyExpr.
...
llvm-svn: 41467
2007-08-26 22:55:13 +00:00
Chris Lattner
a8d8b71680
implement a fixme
...
llvm-svn: 41466
2007-08-26 22:47:40 +00:00
Chris Lattner
02aac86549
new testcases
...
llvm-svn: 41465
2007-08-26 22:41:57 +00:00
Chris Lattner
e56d3e1a23
Implement compound assignment operators whose LHS is scalar but RHS is complex.
...
llvm-svn: 41464
2007-08-26 22:37:40 +00:00
Chris Lattner
624e6d0c68
implement codegen of compound assignment operators for complex.
...
llvm-svn: 41463
2007-08-26 22:09:01 +00:00
Chris Lattner
6d7b404d08
If a visitor doesn't define VisitBinMulAssign, fallback to VisitCompoundAssignOperator
...
instead of VisitBinaryOperator.
llvm-svn: 41462
2007-08-26 22:08:29 +00:00
Anton Korobeynikov
24fb6b2f8c
Don't promote volatile loads/stores. This is needed (for example) to handle setjmp/longjmp properly.
...
This fixes PR1520.
llvm-svn: 41461
2007-08-26 21:43:30 +00:00
Chris Lattner
b633469e02
compound assignment operators are of type CompoundAssignOperator
...
llvm-svn: 41460
2007-08-26 21:41:21 +00:00
Chris Lattner
d65598daa3
dispatch to functions like VisitBinRemAssign with knowledge that
...
the operand is of type CompoundAssignOperator, not just BinaryOperator.
llvm-svn: 41459
2007-08-26 21:40:28 +00:00
Chris Lattner
2c666fa40d
update fixme's
...
llvm-svn: 41458
2007-08-26 21:27:07 +00:00
Chris Lattner
6f672c150c
implement complex division
...
llvm-svn: 41457
2007-08-26 21:24:19 +00:00
Owen Anderson
2b9ec7ff33
Don't DSe volatile stores.
...
llvm-svn: 41456
2007-08-26 21:14:47 +00:00
Chris Lattner
dd9a319158
Add isysroot support, patch by Keith Bauer
...
llvm-svn: 41455
2007-08-26 17:47:35 +00:00
Chris Lattner
0c6aad373f
Fix %p format checking, patch by Keith Bauer.
...
llvm-svn: 41454
2007-08-26 17:39:38 +00:00
Chris Lattner
0d850bfed8
For warnings like this:
...
t.c:3:9: warning: invalid conversion '%B'
printf("%B\a\n", p);
~~~~~~ ^
Don't beep the console or print the newline.
llvm-svn: 41453
2007-08-26 17:38:22 +00:00
Chris Lattner
9decfbabd3
Fix a bug reported by Keith Bauer
...
llvm-svn: 41452
2007-08-26 17:32:59 +00:00
Chris Lattner
2e928885b2
fix a typo noticed by Gordon Henriksen
...
llvm-svn: 41451
2007-08-26 17:25:57 +00:00
Chris Lattner
c3b3707536
llvmgcc is right :)
...
llvm-svn: 41450
2007-08-26 16:54:05 +00:00
Chris Lattner
183c231cf9
compound assignmetns work for scalars.
...
llvm-svn: 41449
2007-08-26 16:52:57 +00:00
Chris Lattner
c141c1b390
implement conversions of complex to bool.
...
llvm-svn: 41448
2007-08-26 16:52:28 +00:00
Chris Lattner
268fcce4f0
remove ConvertScalarValueToBool.
...
llvm-svn: 41447
2007-08-26 16:46:58 +00:00
Chris Lattner
e004438f4a
reimplement ConvertScalarValueToBool in CGExprScalar.cpp
...
llvm-svn: 41446
2007-08-26 16:42:57 +00:00
Chris Lattner
42e6b8150a
refactor some code to expose compex->scalar conversion to CGF
...
llvm-svn: 41445
2007-08-26 16:34:22 +00:00
Chris Lattner
b84bb95b44
be slightly more volatile correct
...
llvm-svn: 41444
2007-08-26 16:22:13 +00:00
Steve Naroff
5f90ca9904
Fix bogus warnings (noticed by Chris) with array-constraints.c.
...
Remove bogus type conversions in Sema::GetTypeForDeclarator(). This commit
only deals with the array types (DeclaratorCheck::Array), though the
rest of this routine should be reviewed. Given the complexity of C declarators,
I don't want to change the entire routine now (will discuss with Chris tomorrow).
llvm-svn: 41443
2007-08-26 14:38:38 +00:00
Chris Lattner
f6dcc9df7e
these fixme's are easy :)
...
llvm-svn: 41442
2007-08-26 07:30:49 +00:00
Chris Lattner
b753f66339
implement a fixme, add a couple more :)
...
llvm-svn: 41441
2007-08-26 07:29:23 +00:00
Chris Lattner
5de3b174c8
there are no conversions from aggregates to scalars.
...
llvm-svn: 41440
2007-08-26 07:26:12 +00:00
Chris Lattner
08c611e4dc
implement conversions from complex to scalar types.
...
llvm-svn: 41439
2007-08-26 07:21:11 +00:00
Chris Lattner
46c7161311
Omit EmitConversion
...
llvm-svn: 41438
2007-08-26 07:16:41 +00:00
Chris Lattner
45067906ad
Fix return of aggregate and return of complex.
...
llvm-svn: 41437
2007-08-26 07:14:44 +00:00
Chris Lattner
44d3e74e22
these implicit conversions are now explicit :)
...
llvm-svn: 41436
2007-08-26 07:09:42 +00:00
Chris Lattner
cf3da8495a
remove uses of EmitConversion
...
llvm-svn: 41435
2007-08-26 07:08:39 +00:00
Chris Lattner
798da7033f
implicit casts take care of this code, remove it now.
...
llvm-svn: 41434
2007-08-26 07:06:24 +00:00
Chris Lattner
3474c202ab
refactor scalar conversions out into CGExprScalar.cpp
...
llvm-svn: 41433
2007-08-26 06:48:56 +00:00
Chris Lattner
e026ebd6fe
steve's recent changes fixed this bogus warning.
...
llvm-svn: 41432
2007-08-26 06:48:28 +00:00
Chris Lattner
1a76a3c970
Break the assumption that any sort of scope (e.g. a loop scope) can
...
hold declarations. Instead, introduce a new "DeclScope" scope type that
holds them explicitly. For now, all scopes have this bit, but in the
future we can use them to fix some issues Neil noticed.
llvm-svn: 41431
2007-08-26 06:24:45 +00:00
Chris Lattner
88078594fc
remove some dead enum values.
...
llvm-svn: 41430
2007-08-26 06:03:04 +00:00
Chris Lattner
7460f9620c
Implement casts from scalar -> complex and complex->complex.
...
llvm-svn: 41429
2007-08-26 05:57:57 +00:00
Chris Lattner
e267f5d2f7
require that operands to __real/__imag are complex or arithmetic. This
...
fixes GCC PR33193
llvm-svn: 41428
2007-08-26 05:39:26 +00:00