Commit Graph

272 Commits

Author SHA1 Message Date
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 f247b30abb Remove a FIXME, the driver handles -O4.
llvm-svn: 68481
2009-04-07 00:38:22 +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
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
Fariborz Jahanian befc9dfbff Implement -fvisibility.
llvm-svn: 68369
2009-04-03 03:28:57 +00:00
Douglas Gregor 97186b07e4 Rename GeneratePCH action to GeneratePTH
llvm-svn: 68348
2009-04-02 23:43:50 +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
Mike Stump d3e3885f2d Remove -ftrapu.
llvm-svn: 68330
2009-04-02 18:15:54 +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 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
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
Daniel Dunbar 35b0c52add Allow CCC_ADD_ARGS to add empty arguments
llvm-svn: 68235
2009-04-01 19:38:07 +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
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 386ef885bb Pull clang-cc code for generating PTH files based on the input type.
- <rdar://problem/6741594> [pth] don't abuse -x to drive pth
   generation

 - Simpler, and fixes PR3915.

Cleanup test cases for PTH:
 - Update to use -emit-pth

 - Removed PTH test of carbon.c and cocoa.mm; these didn't actually
   verify anything, and since PTH is token based the extra coverage
   (over cocoa.m) isn't particularly helpful.

 - Split PTH tests in cocoa.m to cocoa-pth.m, solely to increase
   available parallelism when running tests.

Ted, could you update the PTH test cases (include-pth.c and
cocoa-pth.m) to have some sort of positive check that the PTH is
getting used? "# of PTH cache hits" or "tokens read from PTH cache"
statistics would work great. :)

llvm-svn: 68189
2009-04-01 05:09:09 +00:00
Ted Kremenek 0df7051783 Add '-emit-pth' option to clang-cc as an alternate API for the high-level driver
to generate PTH files. Soon we will remove from clang-cc the GCC-style '-x
c-header' interface for generating PTH files and push this logic to 'clang'.

llvm-svn: 68164
2009-04-01 00:23:28 +00:00
Daniel Dunbar 4cb6715434 Add two FIXMEs
llvm-svn: 68138
2009-03-31 20:10:05 +00:00
Ted Kremenek 7b4df3c3e6 Rename clang.[cpp,h] to clang-cc.[cpp,h] to reflect the name change of the
low-level frontend driver.

llvm-svn: 68131
2009-03-31 18:58:14 +00:00
Daniel Dunbar d640be24fd (LLVM up) Update to use llvm::sys::getHostTriple().
- Always pass -triple to clang-cc (-arch will be removed).

 - clang-cc doesn't play guess work with the target triple anymore.

llvm-svn: 68119
2009-03-31 17:35:15 +00:00
Douglas Gregor f1b876d5de Implement -Wmissing-prototypes. Fixes PR3911.
llvm-svn: 68110
2009-03-31 16:35:03 +00:00
Steve Naroff ea9a107ada Add support for -Wdeprecated-declarations.
This fixes <rdar://problem/6712496> Unable to disable deprecated warning.

llvm-svn: 68108
2009-03-31 15:00:11 +00:00
Eli Friedman 1a4029c5df Implement -Wno-pointer-sign.
llvm-svn: 68062
2009-03-30 21:19:48 +00:00
Daniel Dunbar d67a32252c Driver: Support -M and -MM.
- Not particularly elegant, but my hand is forced by gcc.

Also, tweak -ccc-print-bindings output.

llvm-svn: 68027
2009-03-30 06:36:42 +00:00
Daniel Dunbar 52e96cc932 Improve dependency file support.
- Rip out various bits of logic from clang-cc's dependency file gen,
   force driver to provide instead.

 - -MD output now goes to proper location
<rdar://problem/6723948> clang -MD puts dep file in /tmp with wrong name

 - -M and -MM still don't work correctly.

llvm-svn: 68022
2009-03-30 00:34:04 +00:00
Chris Lattner 5bbb3c8ad9 Push DeclGroup much farther throughout the compiler. Now the various
productions (except the already broken ObjC cases like @class X,Y;) in 
the parser that can produce more than one Decl return a DeclGroup instead
of a Decl, etc.

This allows elimination of the Decl::NextDeclarator field, and exposes
various clients that should look at all decls in a group, but which were
only looking at one (such as the dumper, printer, etc).  These have been
fixed.

Still TODO:

1) there are some FIXME's in the code about potentially using
DeclGroup for better location info.
2) ParseObjCAtDirectives should return a DeclGroup due to @class etc.
3) I'm not sure what is going on with StmtIterator.cpp, or if it can
   be radically simplified now.
4) I put a truly horrible hack in ParseTemplate.cpp.

I plan to bring up #3/4 on the mailing list, but don't plan to tackle
#1/2 in the short term.

llvm-svn: 68002
2009-03-29 16:50:03 +00:00
Chris Lattner 83f095cc7e Introduce a new OpaquePtr<N> struct type, which is a simple POD wrapper for a
pointer.  Its purpose in life is to be a glorified void*, but which does not
implicitly convert to void* or other OpaquePtr's with a different UID.

Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>.  Change the 
entire parser/sema interface to use DeclPtrTy instead of DeclTy*.  This
makes the C++ compiler enforce that these aren't convertible to other opaque
types.

We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc,
but I don't plan to do that in the short term.

The one outstanding known problem with this patch is that we lose the 
bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to
bitmangle the success bit into the low bit of DeclPtrTy.  I will rectify
this with a subsequent patch.

llvm-svn: 67952
2009-03-28 19:18:32 +00:00
Chris Lattner 529efc74ad rename some methods.
llvm-svn: 67923
2009-03-28 06:33:19 +00:00
Chris Lattner c0c3dffa3d reduce indentation, no functionality change.
llvm-svn: 67916
2009-03-28 05:44:17 +00:00
Chris Lattner 1ad4eeb9c7 remove TranslationUnit.
llvm-svn: 67914
2009-03-28 04:31:31 +00:00
Chris Lattner a5adead17b push more ASTContext goodness out through interfaces that use
TranslationUnit

llvm-svn: 67913
2009-03-28 04:27:18 +00:00
Chris Lattner 66918ee148 remove TranslationUnit from ParseAST.
llvm-svn: 67911
2009-03-28 04:13:34 +00:00
Chris Lattner cf16983179 change HandleTranslationUnit to take an ASTContext instead of TranslationUnit
llvm-svn: 67910
2009-03-28 04:11:33 +00:00
Chris Lattner 040d4570c7 remove dead ivar.
llvm-svn: 67907
2009-03-28 04:05:05 +00:00
Chris Lattner edf7eb77cf hoist TranslationUnit some more.
llvm-svn: 67905
2009-03-28 03:56:54 +00:00
Chris Lattner 96c339a661 eliminate some wrappers.
llvm-svn: 67904
2009-03-28 03:53:02 +00:00
Chris Lattner f7d9e2ba1c eliminate ReadASTBitcodeFile
llvm-svn: 67903
2009-03-28 03:49:26 +00:00
Chris Lattner d286851b57 move serialization logic from TranslationUnit to ASTContext.
llvm-svn: 67902
2009-03-28 03:45:20 +00:00
Chris Lattner a0b08dcd6b don't poke at TranslationUnit directly
llvm-svn: 67900
2009-03-28 03:29:40 +00:00
Chris Lattner 5cf49fe587 eliminate ASTConsumer::InitializeTU, all clients are
happy with just ASTContext, they don't need a TU.

llvm-svn: 67894
2009-03-28 02:18:25 +00:00
Chris Lattner 8671ca9d97 revert mike's patch which broke test/CodeGen/no-common.c.
llvm-svn: 67893
2009-03-28 02:12:08 +00:00
Chris Lattner a6f4ca2b6f remove TranslationUnit::OwnsDecls, which is only set, never read.
llvm-svn: 67891
2009-03-28 01:44:40 +00:00
Chris Lattner 84bcc4795e simplify ParseAST by sucking -disable-free handling logic up into
clang.cpp

llvm-svn: 67890
2009-03-28 01:37:17 +00:00
Chris Lattner 2b9e7efccd move StatListener out to top level.
llvm-svn: 67886
2009-03-28 00:55:35 +00:00
Chris Lattner a94d139a1f various cleanups, no functionality change
llvm-svn: 67883
2009-03-28 00:16:20 +00:00
Mike Stump e5fdfd5930 Fixup -fcommon and -fno-common to be more gcc compatible.
llvm-svn: 67863
2009-03-27 20:15:22 +00:00
Chris Lattner 839150e0d2 push line markers through -E mode.
llvm-svn: 67854
2009-03-27 17:13:49 +00:00
Chris Lattner 984fac5f5f most of this is plumbing to get CompileOptions down into
CodeGenModule.  Once there, add a new NoCommon option to
it and implement -fno-common.

llvm-svn: 67735
2009-03-26 05:00:52 +00:00