Ted Kremenek
d969f5fb6f
Initial draft of PTH internals.
...
llvm-svn: 68594
2009-04-08 05:07:30 +00:00
Anders Carlsson
80f97ab08f
Add a destination type argument to EmitConstantExpr. This will be used for when the destination has a reference type. (No functionality change yet)
...
llvm-svn: 68593
2009-04-08 04:48:15 +00:00
Daniel Dunbar
8f28d01126
Implementation definition of interfaces with __objc_exception attribute.
...
- Complete <rdar://problem/6635883> Support __objc_exception__
attribute
llvm-svn: 68591
2009-04-08 04:21:03 +00:00
Sanjiv Gupta
562d68e8db
Pointer width on targets like PIC16 is 16-bit, while the valid index size to GEP is only 32 or 64. So promote index to 32 in such cases.
...
llvm-svn: 68590
2009-04-08 04:16:39 +00:00
Chris Lattner
8bc98d9bed
remove fixme!
...
llvm-svn: 68589
2009-04-08 03:47:39 +00:00
Chris Lattner
4720840d7e
fix typo, noticed by Gabor
...
llvm-svn: 68587
2009-04-08 03:36:03 +00:00
Chris Lattner
9591bbc4f6
improve compatibility with VC+, patch by John Thompson!
...
llvm-svn: 68586
2009-04-08 03:33:43 +00:00
Ted Kremenek
605fee8445
New static analyzer check by Nikita Zhuk!
...
"The attached patch generates warnings of cases where an ObjC message is sent to
a nil object and the size of return type of that message is larger than the size
of void pointer. This may result in undefined return values as described in PR
2718. The patch also includes test cases."
llvm-svn: 68585
2009-04-08 03:07:17 +00:00
Daniel Dunbar
ab7b2f5623
Set __PIC__ (more) correctly.
...
- Add -pic-level clang-cc option to specify the value for the define,
updated driver to pass this.
- Added __pic__
- Added OBJC_ZEROCOST_EXCEPTIONS define while I was here (to match gcc).
llvm-svn: 68584
2009-04-08 03:03:23 +00:00
Anders Carlsson
a60cbcdfe6
Don't assume that a block always has a FunctionProtoType. Fixes rdar://6768379.
...
llvm-svn: 68583
2009-04-08 02:55:55 +00:00
Mike Stump
9d54bd77c0
Add basic support for arm static analysis checking. Radar 6699395
...
llvm-svn: 68582
2009-04-08 02:07:04 +00:00
Daniel Dunbar
d4510f2223
Driver: Fix forwarding of -fpascal-strings.
...
llvm-svn: 68570
2009-04-07 23:51:44 +00:00
Steve Naroff
65a0089eb7
Fix <rdar://problem/6764172> [sema] crash on invalid.
...
llvm-svn: 68568
2009-04-07 22:56:58 +00:00
Daniel Dunbar
ea10ab668f
Visibility attributes should only be set on definition.
...
llvm-svn: 68561
2009-04-07 22:36:33 +00:00
Daniel Dunbar
c44b4ccca8
Driver: Fix forwarding of -{std,ansi,trigraphs} when there are
...
multiple instances of an option.
Also, removed direct -ansi support from clang-cc.
llvm-svn: 68558
2009-04-07 22:13:21 +00:00
Anders Carlsson
5f50c651e9
Shuffle some call code around. No functionality change.
...
llvm-svn: 68557
2009-04-07 22:10:22 +00:00
Daniel Dunbar
3a148f2625
Driver: Forward remaining -f options to clang manually.
...
- Groups are really just intended to hold inherent structure of the
options, not be abused for individual tool argument translation.
llvm-svn: 68554
2009-04-07 21:51:40 +00:00
Daniel Dunbar
9dc82a2632
Driver: Only forward last instance of -mmacosx-version-min= and
...
-isysroot to clang.
- Don't forward arbitrary -i* options to clang, just the ones we know
about.
llvm-svn: 68553
2009-04-07 21:42:00 +00:00
Fariborz Jahanian
9ecb84bb21
Now that we have __weak defined as attribute in all modes,
...
we must not issue gc-specific errors in non-gc mode.
llvm-svn: 68551
2009-04-07 21:25:06 +00:00
Daniel Dunbar
d18049ab1d
Driver: Manually translate a number of -f with no- variants options to
...
clang.
- We will eventually want some more driver infrastructre for this
probably.
- For now, the clang-cc interface stays relatively the same, but we
don't accept multiple instances anymore, or the [no-] variants
directly.
llvm-svn: 68550
2009-04-07 21:16:11 +00:00
Daniel Dunbar
30bf11e181
Driver: Add default for ArgList::hasFlag and simplify implementation.
...
llvm-svn: 68549
2009-04-07 21:08:57 +00:00
Douglas Gregor
ceec5cbaed
Allow us to ask for the access specifier of a translation unit
...
llvm-svn: 68548
2009-04-07 20:58:25 +00:00
Fariborz Jahanian
57eb2e021e
Propagte -fvisibility to objc2's class symbols.
...
llvm-svn: 68543
2009-04-07 20:26:30 +00:00
Eli Friedman
574c745370
Diagnose uses of function specifiers on declarations which don't declare
...
functions. Fixes PR3941.
llvm-svn: 68541
2009-04-07 19:37:57 +00:00
Daniel Dunbar
513d500fda
Driver: Explicitly warn that -pg isn't supported (even though we
...
aren't failing the compilation).
llvm-svn: 68540
2009-04-07 19:18:24 +00:00
Daniel Dunbar
a3cfbe33da
Driver: Add 'q' flag for options which shouldn't be reported as unused.
...
- <rdar://problem/6756295> warning about '-dynamic' argument unused
during compilation seems incorrect
llvm-svn: 68535
2009-04-07 19:04:18 +00:00
Ted Kremenek
882cf06652
CFG: when there is not continue or break target, mark the CFG as bad.
...
llvm-svn: 68533
2009-04-07 18:53:24 +00:00
Anders Carlsson
d8db853243
Remove some dead code.
...
llvm-svn: 68532
2009-04-07 18:53:02 +00:00
Fariborz Jahanian
69ba935743
Fixes method name lookup when method appears in
...
the base implementations (and not in
current implementation).
llvm-svn: 68527
2009-04-07 18:28:06 +00:00
Anders Carlsson
e871d05e26
Fix broken test case. I have no idea why this ever worked.
...
llvm-svn: 68526
2009-04-07 18:21:53 +00:00
Daniel Dunbar
b2a7c062aa
Driver: Fix a parsing bug where some options were matched
...
incorrectly. I'm blanking on the smartest way to write this search,
but we should just do the right thing when we move to TableGen.
- <rdar://problem/6761194> [driver] -Wextra-tokens isn't parsed
correctly
llvm-svn: 68525
2009-04-07 18:21:47 +00:00
Chris Lattner
84d573f256
add a warning for this crazy case, as suggested by Eli.
...
llvm-svn: 68524
2009-04-07 18:18:09 +00:00
Douglas Gregor
b1fe2c9001
Move the internal DeclContext data structures into a separate header.
...
Simplify the addition of a case statement to a switch.
Fix -print-stats for attribute-qualified types.
llvm-svn: 68522
2009-04-07 17:20:56 +00:00
Daniel Dunbar
88056a97f2
Use %s in test, not hard coded name.
...
llvm-svn: 68521
2009-04-07 17:09:43 +00:00
Chris Lattner
2a5c0a3688
Fariborz points out that weak is now defined to the attribute even
...
in C mode.
llvm-svn: 68520
2009-04-07 16:50:40 +00:00
Douglas Gregor
40a8e0fbce
XFAIL a failing test
...
llvm-svn: 68519
2009-04-07 16:32:03 +00:00
Steve Naroff
ebc790d4d8
Tweak Sema::ActOnInstanceMessage() to look for a class method when dealing with qualified id's. This change is motivated by our desire to not support the "Class<foo>" idiom. Note that the change makes perfect sense (since all ObjC classes are also id/instances).
...
This allow us to document a simple migration path...change "Class <foo>" to "id <foo>".
This effects:
- <rdar://problem/6761939> TASK: File source change radars for "qualified Class" errors
- <rdar://problem/6761864> Protocol qualified Class is unsupported
llvm-svn: 68517
2009-04-07 15:07:57 +00:00
Ted Kremenek
c4631b2809
Update checker build.
...
llvm-svn: 68516
2009-04-07 14:26:58 +00:00
Steve Naroff
d338d08f49
Fix typo in newly added test case.
...
llvm-svn: 68515
2009-04-07 14:22:40 +00:00
Steve Naroff
54e5945297
Change the type of ObjC @ string constants (from NSConstantString->NSString).
...
This fixes <rdar://problem/6757102> clang type for @"xxx" is "NSConstantString *" (GCC type is "NSString *").
llvm-svn: 68514
2009-04-07 14:18:33 +00:00
Daniel Dunbar
d7beeea228
Handle use side of __objc_exception__ attribute; when using an
...
exception with this attribute we don't need to emit a weak definition
for the exception type information.
llvm-svn: 68513
2009-04-07 06:43:45 +00:00
Chris Lattner
91c941ecfd
*everyone* knows that __weak is not defined on linux :)
...
llvm-svn: 68512
2009-04-07 06:05:28 +00:00
Chris Lattner
0f98a286a3
implement rdar://6762183. I'm not sure if it is more insane that
...
GCC ignores macro definitions after \n's or that real code depends
on this.
llvm-svn: 68511
2009-04-07 06:02:44 +00:00
Daniel Dunbar
15894b791b
Various fixes to symbols used for Obj-C x86_64 metadata.
...
- Changed method names to match gcc (categories names still aren't
mangled in).
- Expose correct name for class and metadata symbols (although
-fvisibility=hidden isn't yet correct).
- Remove several things from llvm.used that didn't need to be there
(I suspect this can still be trimmed).
- Don't use asm-prefix extension for _objc_empty_{cache,vtable} (not
needed).
- Hide EH type class info with -fvisibility=hidden
- Change setGlobal[Option]Visibility to not change the visibility of
functions with internal linkage.
llvm-svn: 68510
2009-04-07 05:48:37 +00:00
Ted Kremenek
25db1f3ff1
Add test case.
...
llvm-svn: 68505
2009-04-07 05:33:18 +00:00
Ted Kremenek
4d947facad
Remove hack from LiveVariables analysis where variables whose address are taken
...
are considered 'live'. This hack isn't needed anymore because we have a
separation in the path-sensitive analyzer between variable names and bindings;
the analyzer can continue to reason about the storage of a variable after its
name is no longer directly referenced. Now the live variables analysis literally means "is this name live".
Along this line, update the dead stores checker to explicitly look for variables
whose values have escaped.
llvm-svn: 68504
2009-04-07 05:25:24 +00:00
Chris Lattner
33d840cc8f
define __va_copy unconditionally, but va_copy only in c99 or non-ansi mode.
...
Fixes rdar://6759546, some code that actually used __va_copy because they
thought it was "more portable".
llvm-svn: 68503
2009-04-07 05:12:42 +00:00
Ted Kremenek
aed74642cb
Remove GetLeakNode. This isn't the right approach.
...
llvm-svn: 68502
2009-04-07 05:07:44 +00:00
Ted Kremenek
8928d74e19
Remove period.
...
llvm-svn: 68497
2009-04-07 04:54:31 +00:00
Ted Kremenek
e2f5a9f8e3
Eagerly compute the leak location when a leak occurs at the end of a path.
...
llvm-svn: 68496
2009-04-07 04:54:20 +00:00
Ted Kremenek
3cb8a84924
Removed some commented code.
...
llvm-svn: 68495
2009-04-07 04:53:35 +00:00
Chris Lattner
c2d140156c
The __weak and __strong defines are common to all darwin targets
...
and are even set in C mode. As such, move them to Targets.cpp.
__OBJC_GC__ is also darwin specific, but seems reasonable to always
define it when in objc-gc mode.
This fixes rdar://6761450
llvm-svn: 68494
2009-04-07 04:48:21 +00:00
Ted Kremenek
89be6526c3
Remove hack support for @try...@finally in source-level CFGs. The current hack
...
had too many false positives in the analyzer.
llvm-svn: 68492
2009-04-07 04:26:02 +00:00
Daniel Dunbar
c790b09b81
Driver: More verbosity reduction.
...
- Ignore some more -W options and -[fm] options which we can somewhat
safely ignore.
- Recognize that -W is an alias for -Wextra
W: -Wdeclaration-after-statement -Werror-implicit-function-declaration -Wfour-char-constants -Winit-self -Wmissing-format-attribute -Wno-#warnings -Wno-comment -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wstrict-prototypes -Wunused-parameter
f: -fconstant-cfstrings -fdollars-in-identifiers -finline -finline-functions -fno-inline -fno-keep-inline-functions -fno-strict-aliasing -fobjc-atdefs -fobjc-call-cxx-cdtors -fobjc-new-property -fstack-protector
m: -mconstant-cfstrings -mfix-and-continue
llvm-svn: 68487
2009-04-07 02:59:27 +00:00
Daniel Dunbar
5718a2b4a1
Fix test (triple wasn't passed correctly, the driver doesn't accept
...
-mtriple).
llvm-svn: 68484
2009-04-07 02:31:44 +00:00
Ted Kremenek
86d52c4c02
PathDiagnostic generation: experiment with avoiding generation of control-flow
...
pieces between block entrance and block end unless necessary.
llvm-svn: 68483
2009-04-07 01:34:17 +00:00
Daniel Dunbar
4fab57ddea
Implement __sync_{add,sub,and,or,xor}_and_fetch and
...
__sync_bool_compare_and_swap.
- <rdar://problem/6762223> [sema/irgen] support
__sync_bool_compare_and_swap and __sync_add_and_fetch
llvm-svn: 68482
2009-04-07 00:55:51 +00:00
Daniel Dunbar
f247b30abb
Remove a FIXME, the driver handles -O4.
...
llvm-svn: 68481
2009-04-07 00:38:22 +00:00
Anders Carlsson
350da60733
Use the new getFunctionInfo that takes a BlockPointerType parameter, and get rid of getBlockFunctionType from CGBlocks.cpp
...
llvm-svn: 68478
2009-04-07 00:20:24 +00:00
Ted Kremenek
6fd0921bdb
retain/release checker: When hunting for the leak location, don't walk the
...
ExplodedGraph backwards. That may inadvertently result in reverse control-flow
edges in the PathDiagostic.
llvm-svn: 68477
2009-04-07 00:12:43 +00:00
Ted Kremenek
d7c1aaa6c5
Don't overguard to adding a control-flow piece when "alwaysAdd" is true.
...
llvm-svn: 68476
2009-04-07 00:11:40 +00:00
Fariborz Jahanian
54d569c51d
Warn instead of error on duplicate protocol definitions.
...
Be kind to so many projects which are doing this (and be
like gcc).
llvm-svn: 68474
2009-04-06 23:43:32 +00:00
Ted Kremenek
c4c9ed0f9b
Rewrite control-flow diagnostic generation "extensive" algorithm using "edge
...
contexts". This allows us to use a stack of contexts to keep track of what control-flow pieces to include when exiting blocks like 'if', 'for', etc.
llvm-svn: 68473
2009-04-06 23:06:54 +00:00
Ted Kremenek
92820d2d3d
PathDiagnosticLocation now also wraps Decls.
...
llvm-svn: 68470
2009-04-06 22:33:35 +00:00
Steve Naroff
837dc03222
Make casting 'super' a deprecated warning (instead of a hard error).
...
This will simplify clang adoption, and is probably better "etiquette" (since gcc has always accepted this idiom without warning). Once we are over the adoption hurdle, we can turn this into an error.
llvm-svn: 68468
2009-04-06 22:07:54 +00:00
Anders Carlsson
57640939c2
Fix typo.
...
llvm-svn: 68466
2009-04-06 21:55:22 +00:00
Douglas Gregor
7a5bc76b81
Fixed the Fix-It hints for comparison against a string literal. Thanks, Chris!
...
llvm-svn: 68454
2009-04-06 18:45:53 +00:00
Fariborz Jahanian
bc3c77b881
Fixed visibility issues related to objc2's synthesized
...
ivars.
llvm-svn: 68453
2009-04-06 18:30:00 +00:00
Anders Carlsson
6f811f149b
Add a getFunctionInfo that takes a BlockPointerType.
...
llvm-svn: 68452
2009-04-06 18:05:26 +00:00
Anders Carlsson
2266e244b5
Simplify C++ member function calls.
...
llvm-svn: 68451
2009-04-06 17:45:20 +00:00
Anders Carlsson
65cb90efc1
Define __OPTIMIZE__ and __OPTIMIZE_SIZE__ if the -O[12] and -Os flags are passed to the compiler.
...
llvm-svn: 68450
2009-04-06 17:37:10 +00:00
Chris Lattner
8887072bce
enable -std=c9x and -std=iso9899:199x, patch by Ed Schouten!
...
llvm-svn: 68449
2009-04-06 17:17:55 +00:00
Anders Carlsson
25fad47ebe
Add clang-cc to the xcodeproj file.
...
llvm-svn: 68448
2009-04-06 17:11:27 +00:00
Chris Lattner
a8d2dbd181
Daniel convinced me that accepting "const va_list" arguments to va_arg is
...
a really really bad idea. Now that we emit an error about the unpromoted
type, users should be able to understand what is going on.
llvm-svn: 68447
2009-04-06 17:07:34 +00:00
Fariborz Jahanian
15e3a5c4b8
writable property in a category of class's superclass
...
makes the property writable in the current class.
llvm-svn: 68446
2009-04-06 16:59:10 +00:00
Chris Lattner
dcceee734c
Fix a couple of cases where Constant* pointers can dangle in
...
ObjCNonFragileABITypesHelper by converting them to dynamic
getters. This fixes a crash on rdar://6757213. The others
should be converted over as well.
llvm-svn: 68445
2009-04-06 16:53:45 +00:00
Chris Lattner
56382aa890
in va_arg diagnostics, print out the unpromoted type. This makes the
...
diagnostic use the va_list typedef more often, see the difference in the
changed testcase.
llvm-svn: 68441
2009-04-05 15:49:53 +00:00
Ted Kremenek
d3ebd551b9
Fix output of ranges in analyzer plist files.
...
llvm-svn: 68437
2009-04-05 02:08:28 +00:00
Zhongxing Xu
01a5beb8cd
Apply a patch which adds 'OriginalParmVar' to the DeclContextPrinter by Jon
...
Simons.
llvm-svn: 68436
2009-04-05 02:04:38 +00:00
Chris Lattner
3f5cd77db2
Add a warning for questionable va_args usage.
...
llvm-svn: 68435
2009-04-05 00:59:53 +00:00
Chris Lattner
9e658eccab
GCC compatibility: gcc allows applying va_args to const
...
va_lists for some reason. This fixes rdar://6726818
llvm-svn: 68434
2009-04-05 00:52:59 +00:00
Chris Lattner
ecdaf40c9e
fix rdar://6757323, where an escaped newline in a // comment
...
was causing the char after the newline to get eaten.
llvm-svn: 68430
2009-04-05 00:26:41 +00:00
Anders Carlsson
468fa6366b
Add some basic support for generating C++ member functions.
...
llvm-svn: 68425
2009-04-04 20:47:02 +00:00
Anton Korobeynikov
1dfc5f51c8
Extend possible handled regparm(N) value
...
llvm-svn: 68424
2009-04-04 10:27:50 +00:00
Daniel Dunbar
a9bbcfa130
Driver: Handle -dumpversion, this is used by some configuration
...
scripts.
llvm-svn: 68418
2009-04-04 05:17:38 +00:00
Daniel Dunbar
f89733cfb8
Driver: Handle properly calling dsymutil when source input is
...
preceeded by a linker input flag.
- <rdar://problem/6757236> clang should make a dSYM when going
straight from source to binary
- This still matches gcc, but the right way to solve this would be to
detect the situation we care about (we are compiling from source
and linking in one step), instead of looking at the suffix of the
input file. The Tool doesn't quite have enough information to do
this yet, however.
- Also, find the suffix correctly.
llvm-svn: 68417
2009-04-04 00:55:30 +00:00
Daniel Dunbar
90dd6f45cc
Driver: Automatically suppress warnings for duplicate versions of
...
flags which were used for something.
llvm-svn: 68416
2009-04-04 00:52:26 +00:00
Anton Korobeynikov
18e831dcc9
Testcase for regparm codegen
...
llvm-svn: 68415
2009-04-04 00:49:38 +00:00
Anton Korobeynikov
c847824e8e
Basic support for regparm codegen
...
llvm-svn: 68414
2009-04-04 00:49:24 +00:00
Anton Korobeynikov
6953ef2de3
Provide sema proper values of maximal number of arguments passed in registers.
...
llvm-svn: 68413
2009-04-03 23:38:25 +00:00
Anders Carlsson
e5fd6f2227
Add support for calling C++ member functions.
...
llvm-svn: 68412
2009-04-03 22:50:24 +00:00
Anders Carlsson
b15b55c2d0
Add a getFunctionInfo that takes a CXXMethodDecl.
...
llvm-svn: 68411
2009-04-03 22:48:58 +00:00
Daniel Dunbar
f69985511d
Driver: Add -Qunused-arguments option to suppress driver "unused
...
arguments" warning.
llvm-svn: 68410
2009-04-03 22:09:23 +00:00
Fariborz Jahanian
2705859981
Real corener case of a method declared in a protocol
...
used in a class which declares a property of the same
name. This should not result in an unimplemented
method warning.
llvm-svn: 68409
2009-04-03 21:51:32 +00:00
Chris Lattner
01b8ef2ac4
improve the string literal comparison warning to not call @encode's "string literals".
...
llvm-svn: 68407
2009-04-03 21:11:28 +00:00
Ted Kremenek
f9201d9799
Sentence-case bug type.
...
llvm-svn: 68406
2009-04-03 21:10:31 +00:00
Daniel Dunbar
c2a7189048
Driver: Explicitly ignore -fpch-preprocess when using clang, we don't
...
need to do anything special to support this.
llvm-svn: 68403
2009-04-03 20:51:31 +00:00
Daniel Dunbar
53711b34ff
Reduce Driver verbosity by suppressing unused warning about another
...
cluster of -W options.
The list: -Waggregate-return -Wbad-function-cast -Wcast-qual
-Wformat-security -Wformat=2 -Wformat -Wmissing-declarations
-Wnewline-eof -Wno-parentheses -Wpacked -Wredundant-decls -Wshadow
-Wsign-compare -Wstrict-overflow= -Wstrict-overflow -Wuninitialized
-Wunknown-pragmas.
llvm-svn: 68402
2009-04-03 20:33:20 +00:00
Ted Kremenek
751e7e3833
retain/release checker: don't track NSPanel until we have better reasoning about
...
the subtle ownership issues of such objects.
llvm-svn: 68397
2009-04-03 19:02:51 +00:00
Chris Lattner
3a4e43107b
add fixit advice to an archiac ObjC issue.
...
llvm-svn: 68395
2009-04-03 18:38:42 +00:00
Chris Lattner
b93678d688
Fix Clang on VC++, patch by Bixia Zheng!
...
llvm-svn: 68394
2009-04-03 18:23:42 +00:00
Chris Lattner
a84918dcf2
fix some warnings on VC++, patch by John Thompson!
...
llvm-svn: 68391
2009-04-03 17:31:50 +00:00
Chris Lattner
e243851f50
initialize an ivar.
...
llvm-svn: 68387
2009-04-03 15:52:00 +00:00
Steve Naroff
55a719835d
Add a comment/FIXME so Eli can sleep better:-))
...
llvm-svn: 68379
2009-04-03 09:44:50 +00:00
Zhongxing Xu
ec7e7dfe0a
This is the first step to gradually remove the use of loc::SymbolVal. Now
...
when creating symbolic values, we distinguish between location and non-location
values. For location values, we create a symbolic region instead of a
loc::SymbolVal.
llvm-svn: 68373
2009-04-03 07:33:13 +00:00
Daniel Dunbar
8554a77e8d
Do we have fixit advice for comments yet?
...
llvm-svn: 68372
2009-04-03 06:26:01 +00:00
Anders Carlsson
16b1461c21
Ignore plus operands when looking up the operand number from a named operand. This matches llvm-gcc and fixes PR3908.
...
llvm-svn: 68371
2009-04-03 05:57:08 +00:00
Daniel Dunbar
b536701bc5
Fix comment.
...
llvm-svn: 68370
2009-04-03 05:45:43 +00:00
Fariborz Jahanian
befc9dfbff
Implement -fvisibility.
...
llvm-svn: 68369
2009-04-03 03:28:57 +00:00
Ted Kremenek
5d71204390
Convert region-design document to HTML.
...
llvm-svn: 68366
2009-04-03 01:38:55 +00:00
Daniel Dunbar
6a8803a34f
Driver: Add missed translation for darwin::Preprocess (gcc), -d*
...
wasn't being forwarded.
llvm-svn: 68365
2009-04-03 01:27:06 +00:00
Steve Naroff
3e90e33356
Tweak test (now that http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20090330/015001.html is fixed).
...
llvm-svn: 68364
2009-04-03 01:25:18 +00:00
Daniel Dunbar
fd6cfcffa2
Add target hook for setting symbol prefix and section of unicode
...
string literals.
llvm-svn: 68363
2009-04-03 00:57:44 +00:00
Douglas Gregor
0f4cc3f728
Fix a little typo that was killing de-serialization
...
llvm-svn: 68354
2009-04-03 00:25:09 +00:00
Mike Stump
898840f98c
Move the rest of the fixit tests to the FixIt area.
...
llvm-svn: 68349
2009-04-02 23:44:32 +00:00
Douglas Gregor
97186b07e4
Rename GeneratePCH action to GeneratePTH
...
llvm-svn: 68348
2009-04-02 23:43:50 +00:00
Mike Stump
5230b85fc1
Update wording.
...
llvm-svn: 68347
2009-04-02 23:42:13 +00:00
Douglas Gregor
17bbaed164
Resynchronize Decl/VarDecl serialization code with the structures
...
llvm-svn: 68346
2009-04-02 23:40:00 +00:00
Ted Kremenek
6e4c284abe
Sentence-type bug type and category.
...
llvm-svn: 68345
2009-04-02 22:50:16 +00:00
Ed Schouten
e33194b9d5
Add some whitespace to test my commit privileges.
...
Approved by: ddunbar
llvm-svn: 68343
2009-04-02 19:13:12 +00:00
Douglas Gregor
9c0d38a7a0
Add a new command-line option "-fixit-at=file:line:column" that only
...
applies fix-its to error messages that occur at that specific location
in the program.
llvm-svn: 68342
2009-04-02 19:05:20 +00:00
Fariborz Jahanian
38a5c9650e
Fix up lookup rules for properties declared in
...
objc's continuation class.
llvm-svn: 68339
2009-04-02 18:44:20 +00:00
Steve Naroff
d5ca2d0165
Fix http://llvm.org/bugs/show_bug.cgi?id=3907 .
...
llvm-svn: 68338
2009-04-02 18:37:59 +00:00
Daniel Dunbar
b48a4aaec9
Driver: Tweak search paths for FreeBSD.
...
- Patch by Pawel Worach!
llvm-svn: 68332
2009-04-02 18:30:04 +00:00
Ted Kremenek
b594fa1289
Fix grammar.
...
llvm-svn: 68331
2009-04-02 18:20:13 +00:00
Mike Stump
d3e3885f2d
Remove -ftrapu.
...
llvm-svn: 68330
2009-04-02 18:15:54 +00:00
Sanjiv Gupta
639f2d92f8
Don't use static globals for params as it confuses the optimzer that their values are never being used in the function.
...
llvm-svn: 68328
2009-04-02 17:51:27 +00:00
Ted Kremenek
701fc10087
Add a few more analyzer test cases.
...
llvm-svn: 68326
2009-04-02 17:25:00 +00:00
Douglas Gregor
68bc53967e
Move the fix-it tests into their own subdirectory
...
llvm-svn: 68325
2009-04-02 17:19:13 +00:00
Douglas Gregor
a42bd8433d
Provide FIX-IT notes to describe what fix-it is doing behind the
...
scenes, using the underlying diagnostic client to format the
messages.
llvm-svn: 68324
2009-04-02 17:13:00 +00:00
Douglas Gregor
068913eb7a
Some cleanups to the fix-it rewriter. Thanks, Chris
...
llvm-svn: 68322
2009-04-02 16:34:42 +00:00
Anders Carlsson
4eca109941
Implement mangling of declarations inside functions.
...
llvm-svn: 68321
2009-04-02 16:24:45 +00:00
Anders Carlsson
f2125a02db
Mangle VarDecls correctly.
...
llvm-svn: 68320
2009-04-02 16:05:20 +00:00
Anders Carlsson
810679c37a
Move the function decl mangling code out into its own function. No functionality change.
...
llvm-svn: 68319
2009-04-02 15:51:53 +00:00
Douglas Gregor
d8e97def58
When calling a function without a prototype for which we have a
...
definition, warn if there are too many/too few function call
arguments.
llvm-svn: 68318
2009-04-02 15:37:10 +00:00
Daniel Dunbar
b0006ae76d
Wire --version to normal -v version text.
...
llvm-svn: 68316
2009-04-02 15:05:41 +00:00
Ted Kremenek
01cccbfb03
Update checker build.
...
llvm-svn: 68302
2009-04-02 06:33:06 +00:00
Chris Lattner
098d94a57d
add TemplateName.cpp/h to the xcode project, minor tidying.
...
llvm-svn: 68301
2009-04-02 06:07:12 +00:00
Anders Carlsson
cbaeb9e633
Emit code for linkage specifications.
...
llvm-svn: 68300
2009-04-02 05:55:18 +00:00
Ted Kremenek
a64bbc68fc
Also "flatten" PathLocations fed to the HTMLDiagnosticClient. We need a better
...
long-term strategy, but this should work for now.
llvm-svn: 68297
2009-04-02 05:17:38 +00:00
Ted Kremenek
12f510aa8f
Hack: Add 'PathDiagnostic::flattenLocations()'. Because PlistDiagnosticClient
...
can use a PathLocation after any reference Stmts are reclaimed,
flattenLocation() converts those references to statements to source ranges.
llvm-svn: 68292
2009-04-02 05:13:24 +00:00
Douglas Gregor
3b3e0b3c1e
Make darned sure that the -fixit tests are testing what we want them to test
...
llvm-svn: 68289
2009-04-02 04:59:27 +00:00
Chris Lattner
49836b448e
fix a FIXME, providing accurate source range info for DeclStmt's. The end
...
of the range is now the ';' location. For something like this:
$ cat t2.c
#define bool int
void f(int x, int y) {
bool b = !x && y;
}
We used to produce:
$ clang-cc t2.c -ast-dump
typedef char *__builtin_va_list;
void f(int x, int y)
(CompoundStmt 0x2201f10 <t2.c:3:22, line:5:1>
(DeclStmt 0x2201ef0 <line:2:14> <----
0x2201a20 "int b =
(BinaryOperator 0x2201ed0 <line:4:10, col:16> 'int' '&&'
(UnaryOperator 0x2201e90 <col:10, col:11> 'int' prefix '!'
(DeclRefExpr 0x2201c90 <col:11> 'int' ParmVar='x' 0x2201a50))
(DeclRefExpr 0x2201eb0 <col:16> 'int' ParmVar='y' 0x2201e10))")
Now we produce:
$ clang-cc t2.c -ast-dump
typedef char *__builtin_va_list;
void f(int x, int y)
(CompoundStmt 0x2201f10 <t2.c:3:22, line:5:1>
(DeclStmt 0x2201ef0 <line:2:14, line:4:17> <------
0x2201a20 "int b =
(BinaryOperator 0x2201ed0 <col:10, col:16> 'int' '&&'
(UnaryOperator 0x2201e90 <col:10, col:11> 'int' prefix '!'
(DeclRefExpr 0x2201c90 <col:11> 'int' ParmVar='x' 0x2201a50))
(DeclRefExpr 0x2201eb0 <col:16> 'int' ParmVar='y' 0x2201e10))")
llvm-svn: 68288
2009-04-02 04:16:50 +00:00
Ted Kremenek
a2a735e7fa
Add another null pointer check. Simplify condition.
...
llvm-svn: 68283
2009-04-02 03:44:00 +00:00
Ted Kremenek
7f905c2f0d
Fix grammar.
...
llvm-svn: 68282
2009-04-02 03:42:38 +00:00
Ted Kremenek
5d6d7d8184
Add null pointer check.
...
llvm-svn: 68281
2009-04-02 03:30:55 +00:00
Anders Carlsson
f7e01ffa4a
When compiling C++ code, always mangle the names of static block var decls.
...
llvm-svn: 68280
2009-04-02 03:29:47 +00:00
Douglas Gregor
7e70204613
Update comments in fixit tests
...
llvm-svn: 68279
2009-04-02 03:20:30 +00:00
Douglas Gregor
862ffb11d5
Clean up -fixit output slightly
...
llvm-svn: 68278
2009-04-02 03:14:12 +00:00
Ted Kremenek
9335fecc2a
Update expected warning in test case.
...
llvm-svn: 68276
2009-04-02 02:52:13 +00:00
Ted Kremenek
6c3413c74a
More title-casing of bug type names.
...
llvm-svn: 68275
2009-04-02 02:44:03 +00:00
Ted Kremenek
d7c0872653
Title-case the names of bug types.
...
llvm-svn: 68274
2009-04-02 02:40:45 +00:00
Ted Kremenek
b82dd53988
Title-case the names of bug types.
...
llvm-svn: 68273
2009-04-02 02:40:26 +00:00
Mike Stump
0be8875ea4
A code modification hint for files that don't end in a newline.
...
Eventually, would be nice to be able to run these modifications even
when we don't want the warning or errors for the actual diagnostic.
llvm-svn: 68272
2009-04-02 02:29:42 +00:00
Zhongxing Xu
43533c7f40
update docs. Replace 'lattice' with 'tree'.
...
llvm-svn: 68271
2009-04-02 01:14:56 +00:00
Mike Stump
36c36ebc8b
Oops, almost forgot the testcases.
...
llvm-svn: 68270
2009-04-02 01:14:26 +00:00
Douglas Gregor
578dae57ca
Introduce a "-fixit" mode to clang-cc that applies code-modification hints.
...
llvm-svn: 68268
2009-04-02 01:08:08 +00:00
Mike Stump
40968598c7
Fixup -ftrapv to be more gcc compatible. -ftrapu (for want of a
...
better name) is the option that SmallTalk can use to intercept all
overflows, including unsigned. I added some testcases so we don't
break anything.
Also included is another patch from David for += and friends.
llvm-svn: 68267
2009-04-02 01:03:55 +00:00
Ted Kremenek
1e5d9439b8
For plist diagnostics, use the extensive PathDiagnostic generation algorithm.
...
llvm-svn: 68264
2009-04-02 00:44:18 +00:00
Mike Stump
21c81fdce4
We no longer expect an warning as this is now valid.
...
llvm-svn: 68263
2009-04-02 00:04:12 +00:00
Douglas Gregor
170512fa78
Add some more code modification hints
...
llvm-svn: 68261
2009-04-01 23:51:29 +00:00
Daniel Dunbar
7803c9546b
Driver: Allow -ccc-gcc-name to specify the name/path to use when
...
calling gcc in generic configurations.
llvm-svn: 68260
2009-04-01 23:34:41 +00:00
Fariborz Jahanian
e4fd640147
Fix a bug in declaration of property in continuation
...
class which was exposed by implementation of
objc2's nonfragile abi code gen.
llvm-svn: 68259
2009-04-01 23:23:53 +00:00
Douglas Gregor
e3e01a20d0
Add code modification hints to various parsing-related diagnostics.
...
Plus, reword a extension warnings to avoid talking about "ISO C" when
the extension might also be available in C++ or C++0x.
llvm-svn: 68257
2009-04-01 22:41:11 +00:00
Douglas Gregor
fe3d7d0880
Make parsing a semantic analysis a little more robust following Sema
...
failures that involve malformed types, e.g., "typename X::foo" where
"foo" isn't a type, or "std::vector<void>" that doens't instantiate
properly.
Similarly, be a bit smarter in our handling of ambiguities that occur
in Sema::getTypeName, to eliminate duplicate error messages about
ambiguous name lookup.
This eliminates two XFAILs in test/SemaCXX, one of which was crying
out to us, trying to tell us that we were producing repeated error
messages.
llvm-svn: 68251
2009-04-01 21:51:26 +00:00
Steve Naroff
0f55fd9f33
Update test case and comment.
...
llvm-svn: 68247
2009-04-01 21:27:56 +00:00
Steve Naroff
8d816d6cb5
CodeGenModule::GetAddrOfConstantCFString():
...
- Finish up support for converting UTF8->UTF16 to support ObjC @"string" constants.
Remove warning from CheckObjCString.
As the FIXME in the test case indicates, I still have a bug to work out (apparently with \u handling).
llvm-svn: 68245
2009-04-01 21:16:31 +00:00
Ted Kremenek
afb066d1f5
BugReporter, extensive path-diagnostics: add an extra control-flow edge to the
...
enclosing statement when jumping to a subexpression.
llvm-svn: 68244
2009-04-01 21:12:06 +00:00
Daniel Dunbar
0a05d93ed6
Quick and dirty (!) fix to make sure we use powerpc in triples.
...
- PR3922
- I have a clean solution for this in flight, but it may take a while
to come to fruition so we'll take a quick fix for now.
llvm-svn: 68241
2009-04-01 20:33:11 +00:00
Mike Stump
0c61b7322a
Add -ftrapv support, patch from David Chisnall; well all except the
...
clang option code that is and two bug fixes.
llvm-svn: 68240
2009-04-01 20:28:16 +00:00
Fariborz Jahanian
c2d5618083
Fixes a problem where the compiler is reporting the wrong size to the Gnu
...
runtime on 64-bit architectures.
Patch by David Chisnall
llvm-svn: 68238
2009-04-01 19:49:42 +00:00
Ted Kremenek
95af35e251
Fix comment.
...
llvm-svn: 68236
2009-04-01 19:43:28 +00:00
Daniel Dunbar
35b0c52add
Allow CCC_ADD_ARGS to add empty arguments
...
llvm-svn: 68235
2009-04-01 19:38:07 +00:00
Fariborz Jahanian
78be1651e2
Nonfragile ivar synthesis with property is in a continuation
...
class.
llvm-svn: 68234
2009-04-01 19:37:34 +00:00
Daniel Dunbar
d854c8d8a6
Driver: Add freebsd::Link
...
- Patch by Ed Schouten!
llvm-svn: 68233
2009-04-01 19:36:32 +00:00
Ted Kremenek
3278893a1a
Update CMake file. Patch by Brian Diekelman!
...
llvm-svn: 68232
2009-04-01 19:11:05 +00:00
Daniel Dunbar
dae1d347df
Support CCC_ADD_ARGS in new driver.
...
llvm-svn: 68231
2009-04-01 19:08:46 +00:00
Douglas Gregor
b4b81d8ab1
Revert r68221, -ftrapv support, which causes several regressions in
...
Clang's test suite.
llvm-svn: 68230
2009-04-01 18:59:55 +00:00
Ted Kremenek
ed47d79cc2
BugReporter: for extensive path diagnostics:
...
- When processing BlockEdges with terminators, using the condition as the
control-flow point for terminators that are expressions (e.g., '&&', '?')
- When processing events, allow intra-compound statement "jumping"
llvm-svn: 68228
2009-04-01 18:48:52 +00:00
Daniel Dunbar
7fdda1d695
Split PTH tests from carbon.c into separate test.
...
llvm-svn: 68223
2009-04-01 18:25:32 +00:00
Mike Stump
fbc8c132ba
Add -ftrapv support, patch from David Chisnall; well all except the
...
clang option code that is.
llvm-svn: 68221
2009-04-01 18:19:33 +00:00
Daniel Dunbar
9ff631039c
Forgot to remove trailing &&
...
llvm-svn: 68220
2009-04-01 18:11:41 +00:00
Ted Kremenek
9ce13241ff
BugReporter: for extensive PathDiagnostic generation, add control-flow from the
...
start of the function/method.
llvm-svn: 68217
2009-04-01 17:52:26 +00:00
Ted Kremenek
45a75f718c
BugReporter: For the "extensive" PathDiagnostic generation algorithm, elide most
...
intra-compound statement jumps unless they are between terminators (i.e.,
branches).
llvm-svn: 68216
2009-04-01 17:18:21 +00:00
Daniel Dunbar
f46945b274
Ted & I crossed paths here, these tests are in cocoa-pth.m now.
...
llvm-svn: 68215
2009-04-01 16:59:39 +00:00
Fariborz Jahanian
95c802cc03
Removed the test case, as Chris did have a test case in the patch.
...
llvm-svn: 68214
2009-04-01 16:53:37 +00:00
Fariborz Jahanian
df3a9f92b3
Test case for Chris's patch:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=68177
llvm-svn: 68213
2009-04-01 16:51:23 +00:00
Douglas Gregor
7c15b9c9a0
Add testcase for -Wmissing-prototypes
...
llvm-svn: 68212
2009-04-01 16:38:48 +00:00
Douglas Gregor
60f3c95926
Add some examples of Fix-it hints to our documentation
...
llvm-svn: 68210
2009-04-01 16:24:40 +00:00
Steve Naroff
29cae66bde
Add ConvertUTF module from http://www.unicode.org/Public/PROGRAMS/CVTUTF .
...
#ifdef'd out the 5 conversion routines that we don't currently need.
Still need a bit more work in GetAddrOfConstantCFString(). Added a FIXME to indicate this.
Expect to remove the FIXME today...
llvm-svn: 68208
2009-04-01 15:50:34 +00:00
Douglas Gregor
2e0757f319
Give Type::getDesugaredType a "for-display" mode that can apply more
...
heuristics to determine when it's useful to desugar a type for display
to the user. Introduce two C++-specific heuristics:
- For a qualified type (like "foo::bar"), only produce a new
desugred type if desugaring the qualified type ("bar", in this
case) produces something interesting. For example, if "foo::bar"
refers to a class named "bar", don't desugar. However, if
"foo::bar" refers to a typedef of something else, desugar to that
something else. This gives some useful desugaring such as
"foo::bar (aka 'int')".
- Don't desugar class template specialization types like
"basic_string<char>" down to their underlying "class
basic_string<char, char_traits<char>, allocator<char>>, etc.";
it's better just to leave such types alone.
Update diagnostics.html with some discussion and examples of type
preservation in C++, showing qualified names and class template
specialization types.
llvm-svn: 68207
2009-04-01 15:47:24 +00:00
Daniel Dunbar
f524eff37d
Add cocoa-pth.c test case, this got lost in shuffling PTH test cases.
...
llvm-svn: 68205
2009-04-01 15:36:37 +00:00
Ted Kremenek
455de13de1
Re-enable PTH testing for cocoa.h and carbon.h. This tests that PTH works on
...
real-world header files and these tests have caught serious bugs in the past.
llvm-svn: 68204
2009-04-01 15:28:20 +00:00
Steve Naroff
e14b368fa9
More "prep" work for handling UTF16 CFString.
...
Patch by Jean-Daniel Dupas. Thanks!
llvm-svn: 68203
2009-04-01 13:55:36 +00:00
Steve Naroff
c94adda157
ProcessUCNEscape(): Incorportate some feedback from Chris.
...
llvm-svn: 68198
2009-04-01 11:09:15 +00:00
Daniel Dunbar
e80bd1897c
x86-32 Darwin ABI: Handle small structures correctly.
...
- Small structures are returned in a register if:
1. They fit nicely in a register.
2. All fields fit nicely in a register.
(more or less)
- We now pass the first 5000 ABITests if unions are disabled.
- <rdar://problem/6497882> [irgen] x86-32 ABI compatibility with
small structs
llvm-svn: 68197
2009-04-01 07:45:00 +00:00
Daniel Dunbar
58e2971bb0
x86-32 Darwin ABI: Single element arrays can be part of "single
...
element structures", which have different ABI rules.
- Current return-arguments-32 status is: 1 out of 1000 failures (-7)
- Also, vectors inside "single element structs" require special
handling.
llvm-svn: 68196
2009-04-01 07:08:38 +00:00
Ted Kremenek
8b0dba358a
Fix: <rdar://problem/6740387>. Sending nil to an object that returns a struct
...
should only be an error if that value is consumed. This fix was largely
accomplished by moving 'isConsumedExpr' back to ParentMap.
llvm-svn: 68195
2009-04-01 06:52:48 +00:00
Chris Lattner
3088a31e96
remove ASTContext::buildObjCInterfaceType, which breaks canonical
...
types. It is no longer needed now that the code generator
re-lays-out interfaces if they are defines after being laid out
from a forward decl.
llvm-svn: 68194
2009-04-01 06:23:52 +00:00
Ted Kremenek
0bb0909233
- Changed PathDiagnosticPiece::getLocation() to return a PathDiagnosticLocation
...
instead of a FullSourceLoc. This resulted in a bunch of small edits in various
clients.
- Updated BugReporter to include an alternate PathDiagnostic generation
algorithm for PathDiagnosticClients desiring more control-flow pieces.
llvm-svn: 68193
2009-04-01 06:13:56 +00:00