James Dennett
a2449fea5b
Documentation cleanup: Escaped backslashes in Doxygen comments.
...
llvm-svn: 158567
2012-06-15 22:33:08 +00:00
David Blaikie
76cae518cf
Fix crash on missing header in -rewrite-includes.
...
llvm-svn: 158459
2012-06-14 17:36:05 +00:00
David Blaikie
619117a31d
Rename -rewrite-includes to -frewrite-includes.
...
llvm-svn: 158458
2012-06-14 17:36:01 +00:00
Richard Smith
2b013185f8
PR13064: Store whether an in-class initializer uses direct or copy
...
initialization, and use that information to produce the right kind of
initialization during template instantiation.
llvm-svn: 158288
2012-06-10 03:12:00 +00:00
Benjamin Kramer
7132638995
Replace a char counting helper function with std::count.
...
No functionality change.
llvm-svn: 158272
2012-06-09 13:18:14 +00:00
Dmitri Gribenko
4280e5cf97
Convert comments to proper Doxygen comments.
...
llvm-svn: 158241
2012-06-08 23:13:42 +00:00
Jordan Rose
de1a29277e
Disable _Pragma during HTML macro rewriting to keep from crashing.
...
The preprocessor's handling of diagnostic push/pops is stateful, so
encountering pragmas during a re-parse causes problems. HTMLRewrite
already filters out normal # directives including #pragma, so it's
clear it's not expected to be interpreting pragmas in this mode.
This fix adds a flag to Preprocessor to explicitly disable pragmas.
The "right" fix might be to separate pragma lexing from pragma
parsing so that we can throw away pragmas like we do preprocessor
directives, but right now it's important to get the fix in.
Note that this has nothing to do with the "hack" of re-using the
input preprocessor in HTMLRewrite. Even if we someday copy the
preprocessor instead of re-using it, the copy would (and should) include
the diagnostic level tables and have the same problems.
llvm-svn: 158214
2012-06-08 18:06:21 +00:00
David Blaikie
40ed29730b
Revert Decl's iterators back to pointer value_type rather than reference value_type
...
In addition, I've made the pointer and reference typedef 'void' rather than T*
just so they can't get misused. I would've omitted them entirely but
std::distance likes them to be there even if it doesn't use them.
This rolls back r155808 and r155869.
Review by Doug Gregor incorporating feedback from Chandler Carruth.
llvm-svn: 158104
2012-06-06 20:45:41 +00:00
David Blaikie
d5321247c4
Add a -rewrite-includes option, which is similar to -rewrite-macros, but only expands #include directives.
...
Patch contributed by Lubos Lunak (l.lunax@suse.cz ).
Review by Matt Beaumont-Gay (matthewbg@google.com ).
llvm-svn: 158093
2012-06-06 18:52:13 +00:00
Benjamin Kramer
474261af7b
Fix typos found by http://github.com/lyda/misspell-check
...
llvm-svn: 157886
2012-06-02 10:20:41 +00:00
NAKAMURA Takumi
ce6ad6748a
clang/lib/Rewrite/Rewriter.cpp: Don't try to rename opened files on Win32. Win32 doesn't allow rename/removing opened files.
...
llvm-svn: 157528
2012-05-27 12:59:58 +00:00
Fariborz Jahanian
c37a1d6e0f
cleanup some code.
...
llvm-svn: 157436
2012-05-24 22:59:56 +00:00
Fariborz Jahanian
9b43c3f0c5
modern objc translation: Add translation of @autoreleasepool
...
statement. // rdar://11474836.
llvm-svn: 157359
2012-05-23 23:47:20 +00:00
Manuel Klimek
78d084d942
Adds a method overwriteChangedFiles to the Rewriter. This is implemented by
...
first writing the changed files to a temporary location and then overwriting
the original files atomically.
Also adds a RewriterTestContext to aid unit testing rewrting logic in general.
llvm-svn: 157260
2012-05-22 17:01:35 +00:00
Fariborz Jahanian
89919ccd17
Modern objective-c translation. Translating default
...
synthesis of property getter/setters. // rdar://11374235
llvm-svn: 156447
2012-05-08 23:54:35 +00:00
Fariborz Jahanian
9c0c0501e8
modern objc translation. objc_getClass() and objc_getMetaClass()
...
prototypes should both return `struct objc_class *`.
// rdar://11375495
llvm-svn: 156418
2012-05-08 20:55:55 +00:00
Douglas Gregor
8a59a957fb
Revert r156097, which appears to be causing some breakage.
...
llvm-svn: 156304
2012-05-07 14:17:47 +00:00
Fariborz Jahanian
e9863b5c8e
objc modern translator: fix up attribute for dynamic property in a category.
...
// rdar://11095151
llvm-svn: 156127
2012-05-03 23:19:33 +00:00
Fariborz Jahanian
f687e7b2ff
modern objc translator: support for default property
...
synthesis translation. // rdar://11374235 - wip.
llvm-svn: 156125
2012-05-03 22:52:13 +00:00
Fariborz Jahanian
2e7f638b23
modern objc translator: used size_t in couple
...
of places. // rdar://11375908
llvm-svn: 156106
2012-05-03 21:44:12 +00:00
Fariborz Jahanian
3dc3669858
modern objc translation. objc_getClass() and objc_getMetaClass()
...
prototypes should both return `struct objc_class *`.
// rdar://11375495
llvm-svn: 156097
2012-05-03 20:23:37 +00:00
Fariborz Jahanian
70ef929561
modern objective-c translator: Fix destructor def.
...
for __NSContainer_literal.
llvm-svn: 156035
2012-05-02 23:53:46 +00:00
Fariborz Jahanian
d7c6777d50
Modern objective-c translation: Fixing couple of bugs
...
related to laying out ivar structs and accessing non-fragile-ivar
in more compilated cases. // rdar://11323187
llvm-svn: 156004
2012-05-02 17:34:59 +00:00
Fariborz Jahanian
144b72288a
modern objective-c translation of private ivars.
...
// rdar://11351299
llvm-svn: 155921
2012-05-01 17:46:45 +00:00
Fariborz Jahanian
faded5bb0f
modern objective-c translator. named aggregate types
...
defined inside the objc class belong to class's
decl. scope. This is to conform to objective-c
rules. // rdar://11351299
llvm-svn: 155855
2012-04-30 23:20:30 +00:00
Fariborz Jahanian
5979c31ea7
minor refactoring of modern objc translator.
...
llvm-svn: 155843
2012-04-30 19:46:53 +00:00
Fariborz Jahanian
95badad83b
modern objective-c translation: de-virtualize all
...
local rewriting functions.
llvm-svn: 155826
2012-04-30 16:57:52 +00:00
David Blaikie
2d7c57ec1d
Remove the ref/value inconsistency in filter_decl_iterator.
...
filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.
This change errs on the side of value, making op-> return T* and op* return
T&.
(reviewed by Richard Smith)
llvm-svn: 155808
2012-04-30 02:36:29 +00:00
Fariborz Jahanian
bf217c8c14
objective-c modern translator: Correctly translate
...
nonfragile ivar access code when ivar type is a
locally defined struct/union type. // rdar://11323187
llvm-svn: 155740
2012-04-27 22:48:54 +00:00
Fariborz Jahanian
75f2e3c3d5
modern objective-c translator: _OBJC_PROTOCOL_REFERENCE_*
...
symbols should be static. // rdar://11337074
llvm-svn: 155736
2012-04-27 21:39:49 +00:00
Fariborz Jahanian
16d0d6c4ad
modern objective-c transltion: Fixes a translation bug
...
of writing a __block variable being initialized with
a constructed object. // rdar://11326988
llvm-svn: 155673
2012-04-26 23:20:25 +00:00
Fariborz Jahanian
e49a42cae9
modern objc rewriter: fixes a bug writing
...
a const qualified static c-function.
// rdar://11314329
llvm-svn: 155564
2012-04-25 17:56:48 +00:00
Fariborz Jahanian
847713a998
modern objc translator: Allow writing of multiple
...
declaration of __block variables on same lines
with initializers. // rdsr://7547630
llvm-svn: 155473
2012-04-24 19:38:45 +00:00
Fariborz Jahanian
32af25ea05
objc modern rewriter: allow translation of
...
multiple declaration of block variables
(with no initializer) on the same line.
llvm-svn: 155462
2012-04-24 18:16:20 +00:00
Fariborz Jahanian
3fd9bbd41e
objc modern rewriter: minor refactoring.
...
llvm-svn: 155449
2012-04-24 16:45:27 +00:00
Fariborz Jahanian
df0577de11
objective-c modern translator: Further improving the last
...
patch fixing writing a spurious 'static' into
the wrong place. // rdar://11275241
llvm-svn: 155130
2012-04-19 16:30:28 +00:00
Fariborz Jahanian
ca357d9831
modern objective-c translator: Fix writing a spurious 'static'
...
into the wrong place when rewriting a static function
which declares block literals. // rdar://11275241
llvm-svn: 155084
2012-04-19 00:50:01 +00:00
Patrick Beard
0caa39474b
Implements boxed expressions for Objective-C. <rdar://problem/10194391>
...
llvm-svn: 155082
2012-04-19 00:25:12 +00:00
Fariborz Jahanian
88773764e9
objective-c modern translation. Correct rewriting of
...
block meta-data of block literals declared inside
of extern "C" functions.
// rdar://1131490
llvm-svn: 154939
2012-04-17 18:40:53 +00:00
Fariborz Jahanian
35f6e12bf0
Modern objective-c translator:'self' used inside
...
block literal is imported. // rdar://11259664
llvm-svn: 154876
2012-04-16 23:00:57 +00:00
Fariborz Jahanian
cc1722818b
modern objective-c translator: translation of implicit
...
cast to/from block pointer types. // rdar://11202764
Also, many more modern translator tests.
llvm-svn: 154869
2012-04-16 22:14:01 +00:00
Benjamin Kramer
ccdf735e52
Actually, this tree isn't necessarily binary.
...
llvm-svn: 154762
2012-04-15 11:35:18 +00:00
Benjamin Kramer
c2a4475caa
Recursively delete rewrite rope nodes when tearing down the tree.
...
llvm-svn: 154760
2012-04-15 11:09:40 +00:00
Fariborz Jahanian
1b085428e8
objective-c modern translator: Make metadata
...
definition for protocols static. // rdar://11248048
llvm-svn: 154753
2012-04-14 17:13:08 +00:00
Fariborz Jahanian
3a5d552cd7
modern objective-c translator: Fixes translation of
...
__typeof which is a regression by reverting
r154360. // rdar://11233924
llvm-svn: 154679
2012-04-13 18:00:54 +00:00
Fariborz Jahanian
4af0e9efdd
modern objective-c translator: When translating
...
call to 'super' use __rw_objc_super as type of the
'super' meta-data instead of objc_super.
// rdar://11239894
llvm-svn: 154670
2012-04-13 16:20:05 +00:00
Fariborz Jahanian
27db0b3754
objective-c modern translator: beautify rewrite of
...
struct __rw_objc_super; no functionality change.
llvm-svn: 154632
2012-04-12 23:52:52 +00:00
Fariborz Jahanian
e1240fe743
modern objective-c translator. ifdef'out
...
__weak and __block when rewriting.
// rdar://11236342
llvm-svn: 154592
2012-04-12 16:33:31 +00:00
Fariborz Jahanian
5811fd6cc4
modern objective-c translator. Fixes a mis-translation when
...
of a __block struct object. // rdar://11230308
llvm-svn: 154566
2012-04-11 23:57:12 +00:00
Fariborz Jahanian
aaf4d69ac1
modern objective-c translator. Fixes a translation bug when
...
first ivar in the list is a bitfield.
// rdar://11229770
llvm-svn: 154534
2012-04-11 21:12:36 +00:00