Commit Graph

24300 Commits

Author SHA1 Message Date
Dan Gohman 4888f1a210 Minor code simplification.
llvm-svn: 109443
2010-07-26 21:33:22 +00:00
Dan Gohman 0eb9c124a7 It's not necessary to call flush() on a raw_ostream immediately prior
to deleting it.

llvm-svn: 109441
2010-07-26 21:29:50 +00:00
Dan Gohman 28ade550f4 Fix namespace polution.
llvm-svn: 109440
2010-07-26 21:25:24 +00:00
Dan Gohman a8b949883e Make a variable static.
llvm-svn: 109438
2010-07-26 21:12:29 +00:00
Dan Gohman c0539d2eb6 Use an export file. Plugins must export llvm::Registry symbols.
Also, don't link in all the clang libraries statically.

llvm-svn: 109436
2010-07-26 21:12:10 +00:00
Ted Kremenek df4472bca0 Hoist argument type checking into CheckFormatHandler. This is prep for scanf format
string argument type checking.

llvm-svn: 109428
2010-07-26 19:45:54 +00:00
Ted Kremenek 6adb7e35ab Consolidate #args checking for scanf/printf format strings.
llvm-svn: 109427
2010-07-26 19:45:42 +00:00
Devang Patel 6005082354 Revert 109303.
llvm-svn: 109426
2010-07-26 18:49:27 +00:00
Sebastian Redl ae8cbb7220 Make sure that implicit qualification and derived-to-base conversions of xvalues preserve xvalue-ness. Unfortunately I have no idea how to test this property; there doesn't seem to be a syntactical construct that triggers such a conversion and still allows the distinction between prvalues and xvalues to be made.
llvm-svn: 109406
2010-07-26 17:52:21 +00:00
Nick Lewycky 19b9f958e1 Add source location information to C++ base specifiers.
llvm-svn: 109396
2010-07-26 16:56:01 +00:00
Douglas Gregor d6009ffb8e When LIBCLANG_CODE_COMPLETION_LOGGING is set in the environment, log code-completion command lines to stderr
llvm-svn: 109395
2010-07-26 16:29:14 +00:00
Douglas Gregor 67ca40c419 Eliminate the "minimal" and printing parser actions, which only ever
worked for C anyway. Also kills the -cc1 options -parse-noop and
-parse-print-callbacks.

llvm-svn: 109392
2010-07-26 04:08:02 +00:00
Benjamin Kramer f5c4b49278 Wrap bit mangling logic for DiagMappings in its own class so it doesn't leak
into other code. Make it an array instead of a constant-length vector.

llvm-svn: 109384
2010-07-25 21:40:48 +00:00
Douglas Gregor 29b8e3d91c Remove a bunch of trivial destructors
llvm-svn: 109382
2010-07-25 18:44:37 +00:00
Douglas Gregor 5a9310cfb9 Move Type destructor out-of-line
llvm-svn: 109381
2010-07-25 18:39:40 +00:00
Douglas Gregor 9c832f75c0 Remove destructors from declaration nodes
llvm-svn: 109380
2010-07-25 18:38:02 +00:00
Douglas Gregor 717ceeae76 I lied. Kill off a few more Destroy methods
llvm-svn: 109379
2010-07-25 18:32:30 +00:00
Douglas Gregor a9b2dbc1a4 Kill off the last Destroy method in the AST library
llvm-svn: 109378
2010-07-25 18:23:53 +00:00
Douglas Gregor b412e174db Remove the vast majority of the Destroy methods from the AST library,
since we aren't going to be calling them ever.

llvm-svn: 109377
2010-07-25 18:17:45 +00:00
Douglas Gregor 5b11d49a7c Make ASTContext always use the BumpPtrAllocator.
llvm-svn: 109375
2010-07-25 17:53:33 +00:00
Douglas Gregor f2430ba223 Start removing the use of smart pointers from the Parse/Sema
interaction, by effectively defaulting to
DISABLE_SMART_POINTERS. We're embracing the model where all AST nodes
are ASTContext-allocated and live as long as the ASTContext lives.

llvm-svn: 109374
2010-07-25 17:39:21 +00:00
Nick Lewycky e602efc6f6 Remove emacs file mode marker on file with .cpp extension.
llvm-svn: 109366
2010-07-25 03:12:58 +00:00
Eli Friedman e4686d7acf Remove dead code.
llvm-svn: 109358
2010-07-24 21:35:09 +00:00
Nick Lewycky 84a11fdf57 Add header searching for llvm-gcc trunk on Gentoo AMD64. Patch by Mark Wood!
llvm-svn: 109357
2010-07-24 21:33:13 +00:00
Eli Friedman 9255adfb7a PR7698: Make sure we correctly handle the initialization of an array with
dependent size.

llvm-svn: 109356
2010-07-24 21:19:15 +00:00
Peter Collingbourne 5a75e1ae07 Fix clang-interpreter build
llvm-svn: 109347
2010-07-24 17:59:51 +00:00
Nick Lewycky c863c0fa75 Fix sort order.
llvm-svn: 109319
2010-07-24 02:58:13 +00:00
John McCall 268b576b72 Mangle enum constant expressions. Fixes rdar://problem/8204122
llvm-svn: 109315
2010-07-24 01:17:35 +00:00
Chris Lattner 938533db60 turn down the logical bitwise confusion warning to not warn
when the RHS of the ||/&& is ever 0 or 1.  This handles a variety of
creative idioms for "true" used in C programs and fixes many false 
positives at the expense of a few false negatives.  This fixes
rdar://8230351.

llvm-svn: 109314
2010-07-24 01:10:11 +00:00
Devang Patel 268ad093a7 Untangle filename/dirname confusion. Store constructed strings on the side. Avoid use of Path.makeAbsolute().
DW_TAG_compile_unit uses two attributes DW_AT_name and DW_AT_comp_dir. Their expected values are:

$ clang foo.c -g
  DW_AT_name - foo.c
  DW_AT_comp_dir - `pwd`

$ clang one/two/foo.c -g
  DW_AT_name - one/two/foo.c
  DW_AT_comp_dir - `pwd`

$ clang /tmp/one/foo.c -g
  DW_AT_name - /tmp/one/foo.c
  DW_AT_comp_dir - empty

llvm-svn: 109303
2010-07-24 00:59:16 +00:00
Douglas Gregor f5275a8339 Put a newline at the end of the padded buffers used for the
precompiled preamble. This will suppress the -pedantic "no newline at
end of file" warning.

llvm-svn: 109301
2010-07-24 00:42:07 +00:00
Douglas Gregor 6481ef1f9c Once we've built (or reused) a precompiled preamble, create the
appropriately-padded main file buffer (that has spaces in the extra
"reserved" space) and thread that buffer through to the parsing
function. This still does nothing.

llvm-svn: 109299
2010-07-24 00:38:13 +00:00
John McCall 2ca705eb13 Support catching Objective C pointers in C++ under the non-fragile NeXT runtime.
Diagnose attempts to do this under the GNU or fragile NeXT runtimes.

llvm-svn: 109298
2010-07-24 00:37:23 +00:00
Fariborz Jahanian 72cdffa401 Return type of a setter call caused by
use of property-dot syntax using 'super' as receiver
is 'void'. This fixes a bug in generating correct
API for setter call. Fixes radar 8203426.

llvm-svn: 109297
2010-07-24 00:34:08 +00:00
Douglas Gregor 536f091f95 Be careful; even though we had a proper name at the beginning of
Sema::ActOnDeclarator doesn't mean that the Decl we ended up creating
has a useful name. <rdar://problem/8229910>

llvm-svn: 109296
2010-07-24 00:10:38 +00:00
Douglas Gregor 4dde74988e Once we've built a precompiled preamble, keep track of the details of
that preamble (the preamble text, preamble file, reserved main file
size). Check these details when we try to rebuild the precompiled
preamble, and when nothing has changed, re-use the precompiled
preamble.

This code is still very much a WIP, and can't even properly be tested
because we have no way to use the precompiled preamble yet. "Trust me"

llvm-svn: 109294
2010-07-23 23:58:40 +00:00
Sebastian Redl ff4a2951d9 Make declarations in the dependent PCH visible, for C at least.
llvm-svn: 109292
2010-07-23 23:49:55 +00:00
Tom Care cba9f517ac Added an path-sensitive unreachable code checker to the experimental analyzer checks.
- Created a new class to do post-analysis
- Updated several test cases with unreachable code to expect a warning
- Added some general tests

llvm-svn: 109286
2010-07-23 23:04:53 +00:00
Devang Patel cb9fe9ec16 Revert r109263.
llvm-svn: 109284
2010-07-23 23:04:28 +00:00
John McCall dd762d1e5b We never want to pop the translation unit DC, so assert if this happens.
llvm-svn: 109280
2010-07-23 22:45:07 +00:00
John McCall ad5d61e227 Revise cleanup IR generation to fix a major bug with cleanups (PR7686)
as well as some significant asymptotic inefficiencies with threading
multiple jumps through deep cleanups.

llvm-svn: 109274
2010-07-23 21:56:41 +00:00
Fariborz Jahanian 946274471d Allow __func__ and __FUNCTION__ and __PRETTY_FUNCTION__ inside blocks.
Radar 8218839.

llvm-svn: 109272
2010-07-23 21:53:24 +00:00
Devang Patel 28f167699a There is no need to use separate dir name for AT_comp_dir attribute. Using absolute path for filename allows clients to query complete file location info from gdb breakpoints. Save constructed full file name.
llvm-svn: 109263
2010-07-23 20:38:37 +00:00
Fariborz Jahanian b59625ecea Test for selector-warning PCH patch.
radar 6507158.

llvm-svn: 109261
2010-07-23 20:32:57 +00:00
Eli Friedman d4c75cddde Fix for PR7694: make sure to pass in a RecordType to CheckBaseClassAccess;
fixes crashes on both valid and invalid code.  The diagnostic here could
potentially be improved, but it's good enough as-is.

llvm-svn: 109257
2010-07-23 19:25:41 +00:00
Fariborz Jahanian c51609a0b5 PCH read/write for selector reference pool.
Finishes off radar 6507158.

llvm-svn: 109256
2010-07-23 19:11:11 +00:00
Ted Kremenek ac9ca01a80 Dataflow solver: Don't overrwite the initial value of a block with top unless new values are available. Patch by Simone Pellegrini!
llvm-svn: 109243
2010-07-23 18:15:17 +00:00
Douglas Gregor 5cc2c8b9c3 Vectors are not integer types, so the type system should not classify
them as such. Type::is(Signed|Unsigned|)IntegerType() now return false
for vector types, and new functions
has(Signed|Unsigned|)IntegerRepresentation() cover integer types and
vector-of-integer types. This fixes a bunch of latent bugs.

Patch from Anton Yartsev!

llvm-svn: 109229
2010-07-23 15:58:24 +00:00
Zhongxing Xu 5e6ef6d957 Add FILE* leak check to StreamChecker. Patch by Lei Zhang.
llvm-svn: 109225
2010-07-23 14:14:59 +00:00
Bill Wendling 8abd1ca8d2 Remove unneeded iostream include.
llvm-svn: 109219
2010-07-23 07:19:31 +00:00