Dylan Noblesmith
70e73a3d60
refactor -ccc-gcc-name code
...
Put the logic for deciding the default name for gcc/g++
in the only place that actually cares about it.
This also pushes an ifdef out of the generic driver code
to a little further down, when the target is actually known.
Hopefully it can be changed into just a runtime check
in the future.
llvm-svn: 129212
2011-04-09 13:31:59 +00:00
Eli Friedman
c5b20b5283
PR8369: make __attribute((regparm(0))) work correctly. Original patch by
...
pageexec@freemail.hu , tweaks by me.
llvm-svn: 129206
2011-04-09 08:18:08 +00:00
Chandler Carruth
66a7b04767
Clean up the bool conversion warning. Group it with other conversion
...
warnings, and make its text appropriate for constant bool expressions
other than 'false'. This should finish off PR9612.
llvm-svn: 129205
2011-04-09 07:48:17 +00:00
Chandler Carruth
ffab873ed5
Add support for warning on general null pointer expressions of boolean
...
type rather than just the literal 'false'. This begins fixing PR9612,
but the message is now wrong. WIP, the cleanup of the messaging is next.
llvm-svn: 129204
2011-04-09 07:32:05 +00:00
Chris Lattner
e4ec5abf1b
fix indentation
...
llvm-svn: 129202
2011-04-09 07:11:53 +00:00
Chris Lattner
5045cf1a61
accept -x objc-cpp-output as an alias for -x objective-c-cpp-output,
...
per PR9577
llvm-svn: 129201
2011-04-09 07:09:31 +00:00
Chris Lattner
9cb59fa834
add a __sync_swap builtin to fill out the rest of the __sync builtins.
...
Patch by Dave Zarzycki!
llvm-svn: 129189
2011-04-09 03:57:26 +00:00
Ken Dyck
df01628e08
Convert the PointerWidthInBytes variable in EmitMemberPointer() to CharUnits
...
to eliminate a divide-by-8. No change in functionality intended.
llvm-svn: 129180
2011-04-09 01:30:02 +00:00
Ken Dyck
499e93d7ee
Eliminate a divide-by-8 in BuildVMIClassTypeInfo() by using CharUnits for
...
the base offset. No change in functionality intended.
llvm-svn: 129179
2011-04-09 01:09:56 +00:00
Eric Christopher
6417e35568
Remove a pair of unused diagnostic messages.
...
llvm-svn: 129178
2011-04-09 00:53:03 +00:00
Nick Lewycky
d85ae78c48
Apply explicit braces to avoid ambiguous 'else' [-Wparentheses]
...
llvm-svn: 129176
2011-04-09 00:25:15 +00:00
Eric Christopher
7f36a79ee9
Eat the UTF-8 BOM at the beginning of a file since it's ignored anyhow.
...
Nom Nom Nom.
Patch by Anton Korobeynikov!
llvm-svn: 129174
2011-04-09 00:01:04 +00:00
Chris Lattner
143ed0fc72
complete documentation of flags, patch by nobled
...
llvm-svn: 129173
2011-04-08 23:54:05 +00:00
Fariborz Jahanian
eae9c0e3df
Fixes a rewrting bug of a property-dot syntax expression inside
...
a block. First part of // rdar://9254348
llvm-svn: 129171
2011-04-08 23:48:29 +00:00
Argyrios Kyrtzidis
5ae6b64e7f
Properly traverse a ObjCMethodDecl in RecursiveASTVisitor.
...
llvm-svn: 129169
2011-04-08 23:35:25 +00:00
Chris Lattner
e094ee0a34
typo fix + expand
...
llvm-svn: 129167
2011-04-08 22:58:43 +00:00
Ted Kremenek
f603f3afbd
Start overhauling static analyzer support for C++ constructors. The inlining support isn't complete, and needs
...
to be reworked to model CallEnter/CallExit (just like all other calls). For now, treat constructors mostly
like other function calls, making the analysis of C++ code just a little more useful.
llvm-svn: 129166
2011-04-08 22:42:35 +00:00
Evan Cheng
298de937e7
Minor format fix.
...
llvm-svn: 129164
2011-04-08 22:34:21 +00:00
Evan Cheng
fbbacc9241
Document -ftrap-function= option
...
llvm-svn: 129162
2011-04-08 22:18:01 +00:00
Devang Patel
0b37e79891
Do not use zero as an upper bound for unbounded array because upper bound zero also indicates one element array.
...
llvm-svn: 129157
2011-04-08 21:56:52 +00:00
Evan Cheng
04c9429f34
Rename -mtrap_function= to -ftrap_function= since it's now a target neutral options.
...
llvm-svn: 129153
2011-04-08 21:37:45 +00:00
Evan Cheng
77cdce9458
Add -mtrap_function=<> option. rdar://9257465
...
llvm-svn: 129145
2011-04-08 18:47:41 +00:00
John Wiegley
0129629fd3
Use ExprResult& instead of Expr *& in Sema
...
This patch authored by Eric Niebler.
Many methods on the Sema class (e.g. ConvertPropertyForRValue) take Expr
pointers as in/out parameters (Expr *&). This is especially true for the
routines that apply implicit conversions to nodes in-place. This design is
workable only as long as those conversions cannot fail. If they are allowed
to fail, they need a way to report their failures. The typical way of doing
this in clang is to use an ExprResult, which has an extra bit to signal a
valid/invalid state. Returning ExprResult is de riguour elsewhere in the Sema
interface. We suggest changing the Expr *& parameters in the Sema interface
to ExprResult &. This increases interface consistency and maintainability.
This interface change is important for work supporting MS-style C++
properties. For reasons explained here
<http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013180.html >,
seemingly trivial operations like rvalue/lvalue conversions that formerly
could not fail now can. (The reason is that given the semantics of the
feature, getter/setter method lookup cannot happen until the point of use, at
which point it may be found that the method does not exist, or it may have the
wrong type, or overload resolution may fail, or it may be inaccessible.)
llvm-svn: 129143
2011-04-08 18:41:53 +00:00
Fariborz Jahanian
4806ff8af9
Warn for any kind of initialization if initializer does not
...
implement lhs's protocols. // rdar://9091389.
llvm-svn: 129142
2011-04-08 18:25:29 +00:00
Chris Lattner
9242b33de7
fix a typo, patch by PaX team.
...
llvm-svn: 129141
2011-04-08 18:06:54 +00:00
Chandler Carruth
42983aef34
Switch 'is possibly uninitialized' to 'may be uninitialized' based on
...
Chris's feedback.
llvm-svn: 129127
2011-04-08 06:47:15 +00:00
Chandler Carruth
278f89732f
Now that the analyzer is distinguishing between uninitialized uses that
...
definitely have a path leading to them, and possibly have a path leading
to them; reflect that distinction in the warning text emitted.
llvm-svn: 129126
2011-04-08 06:33:38 +00:00
Daniel Dunbar
f28c2ffb84
Driver: Don't attempt to forward some Clang-only options to cc1.
...
llvm-svn: 129108
2011-04-07 20:41:03 +00:00
Daniel Dunbar
44d9ef78ca
Frontend/CC_LOG_DIAGNOSTICS: Fix thinko and open diag log in append mode.
...
llvm-svn: 129103
2011-04-07 20:19:21 +00:00
Ted Kremenek
97c393807b
Teach -Wuninitialized to not warn about variables declared in C++ catch statements.
...
llvm-svn: 129102
2011-04-07 20:02:56 +00:00
Daniel Dunbar
2f8d10e8d7
Fronted/CC_LOG_DIAGNOSTICS: Add test case.
...
llvm-svn: 129097
2011-04-07 19:05:06 +00:00
Daniel Dunbar
7b83306d20
Fronted/CC_LOG_DIAGNOSTICS: Wire up dwarf-debug-flags support.
...
llvm-svn: 129095
2011-04-07 18:59:02 +00:00
Daniel Dunbar
c032503274
Fronted/CC_LOG_DIAGNOSTICS: Output main file name, and add support for
...
outputting dwarf-debug-flags.
llvm-svn: 129094
2011-04-07 18:51:54 +00:00
Daniel Dunbar
719393a56b
Fronted/CC_LOG_DIAGNOSTICS: Tweak output form to be plist chunks, and don't
...
output missing data.
llvm-svn: 129093
2011-04-07 18:44:15 +00:00
Daniel Dunbar
4f3a28b387
Frontend: Continue flushing out LogDiagnosticPrinter.
...
llvm-svn: 129091
2011-04-07 18:37:34 +00:00
Daniel Dunbar
2083c32f7a
Frontend: Sketch a LogDiagnosticPrinter object, and wire CC_LOG_DIAGNOSTICS to
...
it.
llvm-svn: 129089
2011-04-07 18:31:10 +00:00
Daniel Dunbar
4efbb07527
ChainedDiagnosticClient: Fix a bug where chained diagnostic clients wouldn't
...
accurately track warning/error counts.
llvm-svn: 129088
2011-04-07 18:24:12 +00:00
Daniel Dunbar
6b58486466
Frontend: Sketch support for -diagnostic-log-file, which still doesn't do anything.
...
llvm-svn: 129086
2011-04-07 18:11:14 +00:00
Argyrios Kyrtzidis
2f8165b685
Enhance the Rewriter.
...
-Allow removing a line completely if it ends up empty
-Provide more control on what should be removed.
llvm-svn: 129085
2011-04-07 18:10:12 +00:00
Argyrios Kyrtzidis
3fd80c1f1a
Add FullSourceLoc::BeforeThanCompare. a comparison function class, useful for sorting FullSourceLocs.
...
llvm-svn: 129084
2011-04-07 18:10:07 +00:00
Daniel Dunbar
529c03bc1e
Driver: Sketch driver support for a CC_LOG_DIAGNOSTICS options, similar to the
...
existing CC_PRINT_OPTIONS and CC_PRINT_HEADERS, which can be used to
transparently capture the compiler diagnostics from a build.
llvm-svn: 129082
2011-04-07 18:01:20 +00:00
Ken Dyck
bb4e977218
[Reapply r128776, modified so that it does not break debug info.]
...
Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to
CharUnits. No change in functionality intended.
llvm-svn: 129072
2011-04-07 12:37:09 +00:00
Abramo Bagnara
7ccce98861
In C++ the argument of logical not should always be bool. Added missing implicit cast for scalars.
...
llvm-svn: 129066
2011-04-07 09:26:19 +00:00
John McCall
319963434c
Basic, untested implementation for an "unknown any" type requested by LLDB.
...
The idea is that you can create a VarDecl with an unknown type, or a
FunctionDecl with an unknown return type, and it will still be valid to
access that object as long as you explicitly cast it at every use. I'm
still going back and forth about how I want to test this effectively, but
I wanted to go ahead and provide a skeletal implementation for the LLDB
folks' benefit and because it also improves some diagnostic goodness for
placeholder expressions.
llvm-svn: 129065
2011-04-07 08:22:57 +00:00
Ken Dyck
3a09bc5ab0
[Reapply r128773. This is not the source of the issues Devang was seeing
...
with debug info.]
Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No
change in functionality intended.
llvm-svn: 129048
2011-04-07 01:22:42 +00:00
Ken Dyck
25c82240e9
[Reapply r128771. It wasn't the source of the issues Devang saw with debug
...
info.]
Use CharUnits for the offset type in the ClassNamesAndOffsets map in
dumpLayout(). No change in functionality intended.
llvm-svn: 129046
2011-04-07 00:59:42 +00:00
Ken Dyck
42a9d29c2c
Reapply r128770. It's not the cause of the issues Devang saw with debug info.
...
Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No
change in functionality intended.
llvm-svn: 129043
2011-04-07 00:55:01 +00:00
John McCall
26d365e149
I can't figure out any reasonable way to make this test non-host-dependent,
...
so I'm killing it.
llvm-svn: 129026
2011-04-06 20:46:42 +00:00
Anders Carlsson
6b06e18c70
Wide Pascal strings should be of type wchar_t[] and not unsigned char[].
...
llvm-svn: 129017
2011-04-06 18:42:48 +00:00
Fariborz Jahanian
3b9819b4a2
Fix lookup for class messages sent to qualified-class
...
types such that protocols are seached first. Fixes
// rdar://9224670
llvm-svn: 129016
2011-04-06 18:40:08 +00:00
Eric Christopher
534b6a01e8
Add support for Fedora16, gcc 4.6.0 and Fedora Rawhide.
...
Patch by Bobby Powers
llvm-svn: 129014
2011-04-06 18:22:53 +00:00
John Thompson
9bfba16a66
Added link to LLVM cmake page in Visual Studio section.
...
llvm-svn: 129013
2011-04-06 18:22:12 +00:00
Fariborz Jahanian
5de5313abe
Refine rules for atomic property api to
...
pass a previously failing clang test.
// rdar://8808439
llvm-svn: 129004
2011-04-06 16:05:26 +00:00
Peter Collingbourne
ba3e6667cc
Do not use IR marker for LLVM intrinsics
...
llvm-svn: 129001
2011-04-06 12:29:09 +00:00
Peter Collingbourne
eafa4e4b5b
If this is an intrinsic function, set the function's attributes to the intrinsic's attributes.
...
llvm-svn: 129000
2011-04-06 12:29:04 +00:00
John McCall
3337ca5f95
When updating the retain summary based on {cf,ns}_consumed attributes,
...
be sure to consume the argument index that actually had the attribute
rather than always the first. rdar://problem/9234108
llvm-svn: 128998
2011-04-06 09:02:12 +00:00
John McCall
b1915d62a7
Make this a -cc1 test with a triple and a target feature.
...
llvm-svn: 128993
2011-04-06 06:48:04 +00:00
John McCall
3cacdf5dbb
Anonymify this test.
...
llvm-svn: 128987
2011-04-06 04:29:52 +00:00
John McCall
91a528841b
Implement the AVX cmp builtins as macros instead of static inlines.
...
Patch by Syoyo Fujita! Reviewed by Chris Lattner! Checked in by me!
llvm-svn: 128984
2011-04-06 03:37:51 +00:00
John McCall
c5e6b97523
Diagnose a missing ')' on what looks like a statement expression.
...
A situation where we can get an invalid ExprResult without an error.
Fixes PR8394. Patch by Justin Bogner!
llvm-svn: 128979
2011-04-06 02:35:25 +00:00
John McCall
75ca6d72c2
Fix getLocForEndOfToken to not double-count spurious internal characters
...
within a token, like trigraphs and escaped newlines.
Patch by Marcin Kowalczyk!
llvm-svn: 128978
2011-04-06 01:50:22 +00:00
Devang Patel
f3d881c840
Add a test case for r128957. It fixed a bug!
...
llvm-svn: 128966
2011-04-06 00:01:52 +00:00
Devang Patel
78019ec14d
Simplify.
...
llvm-svn: 128957
2011-04-05 23:26:36 +00:00
Fariborz Jahanian
10a95ca876
Fixes a regression caused by my last patch.
...
As a result, I had to remove a c++ version of a clang
test which requires more scrutiny on my part.
llvm-svn: 128950
2011-04-05 23:01:27 +00:00
Devang Patel
b87c428055
Emit debug info for function template parameters.
...
llvm-svn: 128948
2011-04-05 22:54:11 +00:00
Ted Kremenek
43d47cc397
Add ToolChain support to get Clang to recognize Ubuntu/ppc and Gentoo/ppc64.
...
llvm-svn: 128944
2011-04-05 22:04:27 +00:00
Fariborz Jahanian
0f4c711895
Generate atomic api for atomic properties (x86 and x86_64
...
targets) when load/store results in multiple instructions.
// rdar://8808439
llvm-svn: 128937
2011-04-05 21:41:23 +00:00
Chandler Carruth
78c7e34485
Commit a bit of a hack to fully handle the situation where variables are
...
marked explicitly as uninitialized through direct self initialization:
int x = x;
With r128894 we prevented warnings about this code, and this patch
teaches the analysis engine to continue analyzing subsequent uses of
'x'. This should wrap up PR9624.
There is still an open question of whether we should suppress the
maybe-uninitialized warnings resulting from variables initialized in
this fashion. The definitely-uninitialized uses should always be warned.
llvm-svn: 128932
2011-04-05 21:36:30 +00:00
Devang Patel
e1dd424380
Remove unintentional check-in.
...
llvm-svn: 128928
2011-04-05 21:05:56 +00:00
Roman Divacky
27ec14fad7
Enable sse4 and aes for SandyBridge. Leave avx support commented out for now.
...
llvm-svn: 128923
2011-04-05 20:32:44 +00:00
Devang Patel
095421b4a8
Fix typo.
...
llvm-svn: 128921
2011-04-05 20:28:21 +00:00
Lenny Maiorani
de909e4946
Add security syntax checker for strcat() which causes the Static Analyzer to generate a warning any time the strcat() function is used with a note suggesting to use a function which provides bounded buffers. CWE-119.
...
Also, brings the security syntax checker more inline with coding standards.
llvm-svn: 128916
2011-04-05 20:18:46 +00:00
Devang Patel
98d26c91da
Use TemplateParameterList to extract template parameter name.
...
llvm-svn: 128915
2011-04-05 20:15:06 +00:00
Andrew Trick
15e36e8edd
Added *hidden* flags -print-options and -print-all-options so
...
developers can see if their driver changed any cl::Option's. The
current implementation isn't perfect but handles most kinds of
options. This is nice to have when decomposing the stages of
compilation and moving between different drivers. It's also a good
sanity check when comparing results produced by different command line
invocations that are expected to produce the comparable results.
Note: This is not an attempt to prolong the life of cl::Option. On the
contrary, it's a placeholder for a feature that must exist when
cl::Option is replaced by a more appropriate framework. A new
framework needs: a central option registry, dynamic name lookup,
non-global containers of option values (e.g. per-module,
per-function), *and* the ability to print options values and their defaults at
any point during compilation.
llvm-svn: 128911
2011-04-05 18:56:55 +00:00
Andrew Trick
b2a84726f6
whitespace
...
llvm-svn: 128908
2011-04-05 18:49:32 +00:00
Chandler Carruth
dd8f0d0525
Simplify the tracking of when to issue a fixit hint, making the helper
...
function more clear and obvious in behavior.
Add some comments documenting the behavior of the primary diagnostic helper.
llvm-svn: 128901
2011-04-05 18:27:05 +00:00
Chandler Carruth
7a0372023a
Separate the logic for issuing the initialization fixit hint from the
...
diagnostic emission. The fixit hint, when suggested, typically has
nothing to do with the nature or form of the reference.
llvm-svn: 128899
2011-04-05 18:18:08 +00:00
Chandler Carruth
895904da51
Begin refactoring the uninitialized warning code that I uglied up. This
...
extracts a function to handle the emission of the diagnostic separately
from the walking over the set of uninitialized uses.
Also updates the naming used within this extracted function to be a bit
more consistent with the rest of Clang's naming patterns.
The next step will be breaking this apart so that we can go through
different functions rather than tracking so many boolean variables.
llvm-svn: 128898
2011-04-05 18:18:05 +00:00
Michael J. Spencer
7692db3ea2
Fix spelling.
...
llvm-svn: 128896
2011-04-05 17:57:51 +00:00
Chandler Carruth
b5d4831f83
Fix PR9624 by explicitly disabling uninitialized warnings for direct self-init:
...
int x = x;
GCC disables its warnings on this construct as a way of indicating that
the programmer intentionally wants the variable to be uninitialized.
Only the warning on the initializer is turned off in this iteration.
This makes the code a lot more ugly, but starts commenting the
surprising behavior here. This is a WIP, I want to refactor it
substantially for clarity, and to determine whether subsequent warnings
should be suppressed or not.
llvm-svn: 128894
2011-04-05 17:41:31 +00:00
Devang Patel
7522abd3ce
Refactor.
...
llvm-svn: 128893
2011-04-05 17:30:54 +00:00
David Chisnall
ec343e8544
Fix copy-and-paste bug that I introduced while tidying up the code.
...
Does anyone want to buy me a new brain?
llvm-svn: 128890
2011-04-05 17:15:18 +00:00
Eric Christopher
1d70625970
Make this const, there's probably no harm in it and it silences a bunch
...
of warnings when passing const arguments into the function.
Fixes PR9426
llvm-svn: 128880
2011-04-05 07:54:42 +00:00
Chandler Carruth
4e02182a74
Cleanup the style of some of this code prior to functional changes.
...
I think this moves the code in the desired direction of the new style
recommendations (and style conventional in Clang), but if anyone prefers
the previous style, or has other suggestions just chime in and I'll
follow up.
llvm-svn: 128878
2011-04-05 06:48:00 +00:00
Chandler Carruth
7f3654f65c
Refactor one helper function to merely forward to another so that there
...
is a single implementation. No functionality change intended.
llvm-svn: 128877
2011-04-05 06:47:57 +00:00
NAKAMURA Takumi
584f2de0a3
docs/UsersManual.html: Fix some inconsistent HTML elements.
...
llvm-svn: 128876
2011-04-05 04:31:31 +00:00
NAKAMURA Takumi
a33296392e
docs/UsersManual.html: """ize in a paragraph. A few unpaired quotations might confuse HTML-aware text edtors.
...
llvm-svn: 128871
2011-04-05 00:57:02 +00:00
Sandeep Patel
45df3dd3fe
Set AAPCS-VFP calling convention accordingly and hard float ABI command handling.
...
llvm-svn: 128866
2011-04-05 00:23:47 +00:00
Ted Kremenek
75bb01b47d
Filter our experimental checks in scan-build's checker listing.
...
llvm-svn: 128865
2011-04-05 00:21:49 +00:00
Argyrios Kyrtzidis
cbef9ca22a
Fix building with gcc.
...
llvm-svn: 128863
2011-04-05 00:14:22 +00:00
Ted Kremenek
378819342e
Fix PR 9626 (duplicated self-init warnings under -Wuninitialized) with numerous CFG and UninitializedValues analysis changes:
...
1) Change the CFG to include the DeclStmt for conditional variables, instead of using the condition itself as a faux DeclStmt.
2) Update ExprEngine (the static analyzer) to understand (1), so not to regress.
3) Update UninitializedValues.cpp to initialize all tracked variables to Uninitialized at the start of the function/method.
4) Only use the SelfReferenceChecker (SemaDecl.cpp) on global variables, leaving the dataflow analysis to handle other cases.
The combination of (1) and (3) allows the dataflow-based -Wuninitialized to find self-init problems when the initializer
contained control-flow.
llvm-svn: 128858
2011-04-04 23:29:12 +00:00
Devang Patel
44927690c3
Eliminate conservative check that is covered by isIncompleteType() check.
...
llvm-svn: 128857
2011-04-04 23:23:39 +00:00
Devang Patel
a540f1462c
Incomplete type does not have any size.
...
llvm-svn: 128855
2011-04-04 23:18:38 +00:00
Argyrios Kyrtzidis
0e93ac675e
Also update CMakeList.txt
...
llvm-svn: 128854
2011-04-04 23:17:56 +00:00
Argyrios Kyrtzidis
02d32aec00
Add missing file for my previous commit.
...
llvm-svn: 128853
2011-04-04 23:16:36 +00:00
Argyrios Kyrtzidis
5cf423ec8a
Move Driver::createInvocationFromArgs function to Frontend library to avoid dependency cycle
...
between libFrontend and libDriver.
llvm-svn: 128852
2011-04-04 23:11:45 +00:00
Sandeep Patel
f87b3739cc
Explain why layout prefers 32 for small types on Thumb.
...
llvm-svn: 128850
2011-04-04 22:58:12 +00:00
Argyrios Kyrtzidis
3657c006cc
Change test/Analysis/idempotent-operations.c to output the .plist file in the test output directory.
...
llvm-svn: 128849
2011-04-04 22:30:01 +00:00
Argyrios Kyrtzidis
f606b82e9a
Introduce Driver::createInvocationFromArgs used to create a CompilerInvocation from command-line args.
...
llvm-svn: 128848
2011-04-04 21:38:51 +00:00
Ted Kremenek
b8d8c4ec56
-Wuninitialized: use "self-init" warning when issue uninitialized values warnings from the dataflow analysis that include within the initializer of a variable.
...
llvm-svn: 128843
2011-04-04 20:56:00 +00:00
Devang Patel
84852bbb42
Revert r128770, r128771, r128773 and r128776 for now. It breaks debug info.
...
llvm-svn: 128842
2011-04-04 20:36:06 +00:00
Ted Kremenek
352a7081a8
-Wuninitialized: don't warn about uninitialized variables in unreachable code.
...
llvm-svn: 128840
2011-04-04 20:30:58 +00:00
Ted Kremenek
35d800c39f
-Wuninitialized: don't issue fixit for initializer if a variable declaration already has an initializer.
...
llvm-svn: 128838
2011-04-04 19:43:57 +00:00
Ted Kremenek
99a337eed0
When emitting a "too many arguments to function call..." error, also include a note with a location for the function prototype.
...
llvm-svn: 128833
2011-04-04 17:22:27 +00:00
Bob Wilson
e3a15fed08
Change ARM data layout strings to match llvm-gcc.
...
Sandeep Patel noticed that the alignment was wrong for Neon vector types,
and this change is partly derived from his patch. For the APCS ABI, however,
additional changes were required: the maximum ABI alignment is 32 bits and
the preferred alignment for i64 and f64 types should be 64 bits.
llvm-svn: 128825
2011-04-04 16:53:11 +00:00
NAKAMURA Takumi
ce60187a89
docs/UsersManual.html: Add cygming notes.
...
llvm-svn: 128819
2011-04-04 15:02:41 +00:00
Eli Friedman
72adff255e
PR9585: add __decltype as a keyword. While I'm here, alphabetize the list.
...
llvm-svn: 128809
2011-04-04 07:19:40 +00:00
Eli Friedman
2d9c47ea6c
PR9615: make sure we destroy any temporaries returned by operator->.
...
I'm pretty sure this is the right fix, but I would appreciate it if someone
else would double-check.
llvm-svn: 128806
2011-04-04 01:18:25 +00:00
Richard Smith
13f68cf53e
clang has had full and tested support for C++0x trailing-return-type and auto type deduction since r126166. Update the website to reflect this, and add a __has_feature test.
...
trailing-return-type codegen is not tested yet (name mangling in particular).
llvm-svn: 128787
2011-04-03 14:12:46 +00:00
Lenny Maiorani
fca2e9618a
Refactoring the security checker a little bit so that each CallExpr check doesn't get called for each CallExpr. Instead it does a switch and only runs the check for the proper identifier. Slight speed improvement (probably significant on very large ASTs), and should make it easier and more clear to add more checks for other CallExpr's later.
...
llvm-svn: 128785
2011-04-03 05:07:11 +00:00
Ted Kremenek
a95594416e
static analyzer: Add a new ProgramPoint PostCondition to represent the post position of a branch condition, and a new generateNode method to BranchNodeBuilder using PostCondition ProgramPoint. This method generates a new ExplodedNode but not a new block edge.
...
Patch by Lei Zhang!
llvm-svn: 128784
2011-04-03 04:34:49 +00:00
Ted Kremenek
850d35be16
Fix RegionStore bug when doing a field load whose parent is also a field assigned a LazyCompoundValue. Fixes <rdar://problem/9163742> and PR 9522.
...
llvm-svn: 128783
2011-04-03 04:09:15 +00:00
Nico Weber
cc2b8717c5
Make -Wheader-hygiene not complain about USING_NAMESPACE_THROUGH_MACRO in a non-header file.
...
llvm-svn: 128780
2011-04-02 19:45:15 +00:00
Argyrios Kyrtzidis
6402c97eed
[analyzer] Simplify CheckerFn template and use it more to reduce duplication. No functionality change.
...
llvm-svn: 128779
2011-04-02 19:37:26 +00:00
Ken Dyck
1473c9a7c4
Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to
...
CharUnits. No change in functionality intended.
llvm-svn: 128776
2011-04-02 17:52:22 +00:00
Ken Dyck
1b23db93df
Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No
...
change in functionality intended.
llvm-svn: 128773
2011-04-02 17:13:02 +00:00
Ken Dyck
cf4ef5314f
Use CharUnits for the offset type in the ClassNamesAndOffsets map in
...
dumpLayout(). No change in functionality intended.
llvm-svn: 128771
2011-04-02 17:03:24 +00:00
Ken Dyck
1eac9f1546
Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No
...
change in functionality intended.
llvm-svn: 128770
2011-04-02 16:57:20 +00:00
Chandler Carruth
f20ec92331
Apply a bug-fix patch from Marcin Kowalczyk to the source locations for
...
a couple of operator overloads which form interesting expressions in the
AST.
I added test cases for both bugs with the c-index-test's token
annotation feature. Also, thanks to John McCall for confirming that this
is the correct solution.
llvm-svn: 128768
2011-04-02 09:47:38 +00:00
Zhongxing Xu
af2371e368
Remove a redundant method. We have a const version.
...
llvm-svn: 128762
2011-04-02 03:20:45 +00:00
Ted Kremenek
8f89f7c893
Teach IdempotentOperationsChecker about paths aborted because ExprEngine didn't know how to handle a specific Expr type.
...
llvm-svn: 128761
2011-04-02 02:56:23 +00:00
Ted Kremenek
c703a666f7
static analyzer: Rename 'BlocksAborted' to 'BlocksExhausted' to reflect that a given CFGBlock was analyzed too many times.
...
llvm-svn: 128760
2011-04-02 02:56:17 +00:00
Ken Dyck
6b20919317
Convert BaseOffset::NonVirtualOffset to CharUnits. No change in
...
functionality intended.
llvm-svn: 128756
2011-04-02 01:32:03 +00:00
Ken Dyck
872d74a591
Convert offset parameters and return values of VTableComponent methods to
...
CharUnits. No change in functionality intended.
llvm-svn: 128754
2011-04-02 01:14:48 +00:00
Ken Dyck
496906629b
Convert the offsets in VCallOffsetMap to CharUnits. No change in
...
functionality intended.
llvm-svn: 128753
2011-04-02 00:51:15 +00:00
Ken Dyck
eff7fe645b
Convert offset parameters of VTableBuilder::IsOverriderUsed() to CharUnits.
...
No change in functionality intended.
llvm-svn: 128752
2011-04-02 00:44:58 +00:00
Fariborz Jahanian
c6078c87d1
Fixes a rewriter bug rewriting call to a byref
...
block pointer nested inside a block. // rdar:// 9204669
llvm-svn: 128747
2011-04-01 23:08:13 +00:00
Daniel Dunbar
16d970950f
Driver/Darwin: Tweak simulator link logic a bit more to be closer to GCC.
...
llvm-svn: 128738
2011-04-01 21:02:42 +00:00
Fariborz Jahanian
5bba75f1a7
ANother rewrite bug, rewriting a call of
...
__byref block. // rdar://9204669
llvm-svn: 128726
2011-04-01 19:19:28 +00:00
Devang Patel
1ffe23464a
Do not try calculate the size of forward-declared template type array.
...
llvm-svn: 128725
2011-04-01 19:02:33 +00:00
Ted Kremenek
c8e6f5110c
Don't store reports when scan-build's build command matches /autogen/ (same as configure).
...
llvm-svn: 128723
2011-04-01 18:47:06 +00:00
Chandler Carruth
3d7e3daaa6
Fix an error in TreeTransform where we failed to copy the TemplateName's
...
location into a TemplateSpecializationTypeLoc. These were found using
a hand-written program to inspect every source location in
TemplateSpecializationTypeLocs and Valgrind. I don't know of any way to
test them in Clang's existing test suite sadly.
Example code that triggers the ElaboratedType case:
template <typename T> struct X1 {
template <typename U> struct X1_1 {
int x;
};
};
template <typename T, typename U> struct X2 {
typename X1<T>::template X1_1<U> B;
};
X2<char, int> x2;
The other fix was simply spotted by inspection. I audited all constructions of
[Dependent]TemplateSpecializationTypeLocs in TreeTransform.h, and the rest set
the TemplateNameLoc properly.
llvm-svn: 128702
2011-04-01 02:03:23 +00:00
Daniel Dunbar
826342774e
IRgen: Reapply r128691 with a fix to ensure we don't increase alignment past
...
that of the array element type.
llvm-svn: 128698
2011-04-01 00:49:43 +00:00
Daniel Dunbar
ea6b81a2ad
Revert r128691, "IRgen: Improve GCC compatibility when dealing with packed
...
arrays by propagating", it's breaking test in ways I don't understand yet.
llvm-svn: 128693
2011-04-01 00:13:33 +00:00
Daniel Dunbar
417bf0f147
IRgen: Improve GCC compatibility when dealing with packed arrays by propagating
...
the array alignment to the array access.
- This is more or less the best we can do without having alignment present in
the type system, but is a long way from truly matching how GCC handles this.
llvm-svn: 128691
2011-03-31 23:32:15 +00:00
Fariborz Jahanian
ff51d4e559
Fix couple of rewriter bugs related to rewriting a
...
__block block declaration. //rdar://9204669
llvm-svn: 128682
2011-03-31 22:49:32 +00:00
Ted Kremenek
77361761fb
-Wuninitialized should not warn about variables captured by blocks as byref.
...
Note this can potentially be enhanced to detect if the __block variable
is actually written by the block, or only when the block "escapes" or
is actually used, but that requires more analysis than it is probably worth
for this simple check.
llvm-svn: 128681
2011-03-31 22:32:41 +00:00
Lenny Maiorani
6ffe738f24
Add security syntax checker for strcpy() which causes the Static Analyzer to generate a warning any time the strcpy() function is used with a note suggesting to use a function which provides bounded buffers.
...
llvm-svn: 128679
2011-03-31 22:09:14 +00:00
Lenny Maiorani
79d74141b1
Adding Static Analyzer checker for mempcpy().
...
Models mempcpy() so that if length is NULL the destination pointer is returned. Otherwise, the source and destination are confirmed not to be NULL and not overlapping. Finally the copy is validated to not cause a buffer overrun and the return value is bound to the address of the byte after the last byte copied.
llvm-svn: 128677
2011-03-31 21:36:53 +00:00
Lenny Maiorani
70568c2be7
Fix spelling in a comment. (test commit)
...
llvm-svn: 128670
2011-03-31 21:26:55 +00:00
Sebastian Redl
7ac974122f
Make ChainedIncludesSource an ExternalSemaSource, otherwise initialization of the ASTReader is incomplete, leading to errors like not realizing std::type_info is already defined.
...
llvm-svn: 128664
2011-03-31 19:29:24 +00:00
Sebastian Redl
604caf4008
Tell the diagnostic client about starting and ending source files when automatically creating chained PCHs. This way, we don't get a crash whenever a diagnostic is emitted while processing the include.
...
llvm-svn: 128663
2011-03-31 19:29:18 +00:00
Daniel Dunbar
ebc34dff18
Driver/Darwin: Tweak link logic for simulator.
...
llvm-svn: 128641
2011-03-31 17:12:33 +00:00
John McCall
7c623641a6
Whoops.
...
llvm-svn: 128621
2011-03-31 09:19:20 +00:00
John McCall
f9b056b002
After much contemplation, I've decided that we probably shouldn't "unique"
...
__block object copy/dispose helpers for C++ objects with those for
different variables with completely different semantics simply because
they happen to both be no more aligned than a pointer.
Found by inspection.
Also, internalize most of the helper generation logic within CGBlocks.cpp,
and refactor it to fit my peculiar aesthetic sense.
llvm-svn: 128618
2011-03-31 08:03:29 +00:00
Ted Kremenek
40d16c0e75
Static analyzer: fix bug in handling of dynamic_cast<>. The sink node wouldn't always be the final node, thus causing the state to continue propagating. Instead,
...
recover some path-sensitivity by conjuring a symbol.
llvm-svn: 128612
2011-03-31 04:46:53 +00:00
Ted Kremenek
61a4f6682a
Teach static analyzer about the basics of handling new[]. We still don't simulate constructors, but at least the analyzer doesn't think the return value is uninitialized.
...
llvm-svn: 128611
2011-03-31 04:04:48 +00:00
John McCall
7306487077
Move all the significant __block code into CGBlocks.cpp. No functionality
...
change.
llvm-svn: 128608
2011-03-31 01:59:53 +00:00
Matt Beaumont-Gay
873c6dd875
Oops, prefer C-style cast here
...
llvm-svn: 128607
2011-03-31 01:56:27 +00:00
Matt Beaumont-Gay
4ed4e93b18
Remove a redundant isValid() check
...
llvm-svn: 128606
2011-03-31 01:46:47 +00:00
Matt Beaumont-Gay
a25fce8e9e
Silence GCC warning about differing types on the branches of a conditional expression
...
llvm-svn: 128605
2011-03-31 01:43:22 +00:00
Ken Dyck
4680e9219a
Convert the return value of
...
VCallAndVBaseOffsetBuilder::getCurrentOffsetOffset() to CharUnits. No change
in functionality intended.
llvm-svn: 128603
2011-03-31 01:08:46 +00:00
Ken Dyck
47e1e54343
Convert the OffsetInLayoutClass parameter of
...
VCallAndVBaseOffsetBuilder::AddVBaseOffsets() to CharUnits. No change in
functionality intended.
llvm-svn: 128600
2011-03-31 00:56:47 +00:00
Daniel Dunbar
3b17a865bb
Change Clang's __VERSION__ to include the same basic info as in clang -v.
...
- Please never ever ever ever write a tool that sniffs this.
llvm-svn: 128599
2011-03-31 00:53:51 +00:00
Ken Dyck
1a93b3b080
Convert the OffsetInLayoutClass of the VCallAndVBaseOffsetBuilder
...
constructor to CharUnits. No change in functionality intended.
llvm-svn: 128598
2011-03-31 00:48:04 +00:00
Ken Dyck
9b32ee1611
Convert the RealBaseOffset parameter of
...
VCallAndVBaseOffsetBuilder::AddVCallAndVBaseOffsets() to
CharUnits. No change in functionality intended.
llvm-svn: 128596
2011-03-31 00:37:24 +00:00
Daniel Dunbar
b1798f7b01
Basic: Add support for a build variable to set the repository path that goes
...
into the Clang version.
llvm-svn: 128595
2011-03-31 00:32:50 +00:00
Bob Wilson
7201af3914
Use intrinsics for Neon vmull operations. Radar 9208957.
...
llvm-svn: 128590
2011-03-31 00:09:00 +00:00
Ted Kremenek
f49e1dd86d
Add '#ifndef _PTRDIFF_T' guard around definition of ptrdiff_t. Fixes <rdar://problem/9210154>.
...
llvm-svn: 128578
2011-03-30 21:43:52 +00:00
Ted Kremenek
723cdf16fa
Put "#pragma message ..." into its own warning (human friendly) category.
...
llvm-svn: 128573
2011-03-30 21:09:57 +00:00
Argyrios Kyrtzidis
e9c3272f55
Silence warnings of unkwown -Wlarger-than and -Wframe-larger-than. Fixes rdar://6970318.
...
llvm-svn: 128560
2011-03-30 18:02:43 +00:00
Ted Kremenek
98a24e37c5
Begin reworking static analyzer support for C++ method calls. The current logic was divorced
...
from how we process ordinary function calls, had a tremendous about of redundancy, and relied
strictly on inlining behavior (which was incomplete) to provide semantics instead of falling
back to the conservative analysis we use for C functions. This is a significant step into
making C++ analyzer support more useful.
llvm-svn: 128557
2011-03-30 17:41:19 +00:00
Fariborz Jahanian
20688ccc48
de-sugared when accessing property reference type.
...
Add a test case for synthesize ivar. // rdar://9070460
llvm-svn: 128554
2011-03-30 16:59:30 +00:00
Fariborz Jahanian
7a26ba4d0d
Fix IRGen issues related to using property-dot syntax
...
for prperty reference types. // rdar://9208606.
llvm-svn: 128551
2011-03-30 16:11:20 +00:00
Jay Foad
20c0f02cc5
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128538
2011-03-30 11:28:58 +00:00
Jay Foad
27e20c3c58
(Almost) always call reserveOperandSpace() on newly created PHINodes.
...
llvm-svn: 128534
2011-03-30 11:19:06 +00:00
Ken Dyck
b3ba775523
Convert the offset parameter of
...
VCallAndVBaseOffsetBuilder::AddVCallOffsets() to CharUnits. No change in
functionality intended.
llvm-svn: 128531
2011-03-30 10:11:40 +00:00
Ken Dyck
075de167f8
Convert local offset variable to CharUnits in AddVCallOffsets. No change in
...
functionality intended.
llvm-svn: 128522
2011-03-30 01:21:33 +00:00
Ken Dyck
078f3e6905
Convert a local offset variable to CharUnits. No change in functionality
...
intended.
llvm-svn: 128521
2011-03-30 01:14:22 +00:00
Ken Dyck
032a903982
Convert the OffsetInLayoutClass parameter of DeterminePrimaryVirtualBases()
...
to CharUnits. No change in functionality intended.
llvm-svn: 128520
2011-03-30 01:10:23 +00:00
Ken Dyck
45956a467e
Convert the OffsetInLayoutClass parameter of LayoutSecondaryVTables to
...
CharUnits. No change in functionality intended.
llvm-svn: 128516
2011-03-30 00:50:28 +00:00
Devang Patel
4d7612744f
Fix in r128471 is very broad. Some of the unconditional branches need line number information for better user experience.
...
Restrict the fix. This fixes break.exp failures from gdb testsuite.
llvm-svn: 128513
2011-03-30 00:08:31 +00:00
Argyrios Kyrtzidis
84d7907797
[analyzer] Allow all checkers of a group to be enabled.
...
llvm-svn: 128512
2011-03-29 23:57:41 +00:00
Argyrios Kyrtzidis
437758cbe6
[analyzer] For -analyzer-checker-help show all the info about groups, packages, and which packages/checkers are hidden.
...
llvm-svn: 128511
2011-03-29 23:57:38 +00:00
Jeffrey Yasskin
cb40757195
Add a libstdc++-4.4 patch for C++0x to the website.
...
llvm-svn: 128498
2011-03-29 22:27:50 +00:00
Devang Patel
adc35e28fc
Robustify test string.
...
llvm-svn: 128486
2011-03-29 21:06:43 +00:00
Oscar Fuentes
fda6a4c33a
CMake: removed some unnecesary conditionals from add_clang_library.
...
llvm-svn: 128483
2011-03-29 20:51:00 +00:00
Devang Patel
298ecb3aaf
Add target triple.
...
llvm-svn: 128480
2011-03-29 20:00:06 +00:00
Argyrios Kyrtzidis
4ee039647a
[analyzer] Checker Packages can now belong to a group. This requires llvm commit r128474.
...
llvm-svn: 128475
2011-03-29 18:54:02 +00:00
Chandler Carruth
7750f7694c
Fix an unused variable warning in release builds and make the
...
assert-less codepath marginally more efficient.
llvm-svn: 128472
2011-03-29 18:38:10 +00:00
Devang Patel
6f2e41e0d4
Do not line number entry for unconditional branches. Usually, users do not want to stop at closing '}'.
...
llvm-svn: 128471
2011-03-29 18:35:54 +00:00
John Thompson
f71173043f
Fixed build error.
...
llvm-svn: 128470
2011-03-29 18:31:21 +00:00
Francois Pichet
117d23c5bc
Add a triple to make the test friendly on no windows platform.
...
llvm-svn: 128459
2011-03-29 11:38:04 +00:00
Francois Pichet
3096d209bf
Accept __declspec(dllimport) for function defined at class scope in Microsoft mode.
...
This fixes a bunch of errors when compiling MSVC header files with the -DDLL flag.
llvm-svn: 128457
2011-03-29 10:39:17 +00:00
Chandler Carruth
ffce245700
Fix a bug in how we were resolving the address of overloaded functions
...
when the resolution took place due to a single template specialization
being named with an explicit template argument list. In this case, the
"resolution" doesn't take into account the target type at all, and
therefore can take place for functions, static member functions, and
*non-static* member functions. The latter weren't being properly checked
and their proper form enforced in this scenario. We now do so.
The result of this last form slipping through was some confusing logic
in IsStandardConversion handling of these resolved address-of
expressions which eventually exploded in an assert. Simplify this logic
a bit and add some more aggressive asserts to catch improperly formed
expressions getting into this routine.
Finally add systematic testing of member functions, both static and
non-static, in the various forms they can take. One of these is
essentially PR9563, and this commit fixes the crash in that PR. However,
the diagnostics for this are still pretty terrible. We at least are now
accepting the correct constructs and rejecting the invalid ones rather
than accepting invalid or crashing as before.
llvm-svn: 128456
2011-03-29 08:08:18 +00:00
Ted Kremenek
03325c4be9
Add workaround for Sema issue found in <rdar://problem/9188004>, which leads to an assertion failure in the uninitialized variables analysis. The problem is that Sema isn't properly registering a variable in a DeclContext (which -Wuninitialized relies on), but
...
my expertise on the template instantiation logic isn't good enough to fix this problem for real. This patch worksaround the
problem in -Wuninitialized, but we should fix it for real later.
llvm-svn: 128443
2011-03-29 01:40:00 +00:00
Argyrios Kyrtzidis
ba699d611b
Don't do the checks of Sema::DiagnoseEqualityWithExtraParens() on type-dependent expressions. Fixes rdar://9027658.
...
llvm-svn: 128437
2011-03-28 23:52:04 +00:00
Fariborz Jahanian
b24b568725
Implements property of reference types. Adding
...
an executable test to llvm test suite.
// rdar://9070460.
llvm-svn: 128435
2011-03-28 23:47:18 +00:00
Daniel Dunbar
67919b2a5b
Integrated-As: Support -Wa,-L when using the integrated assembler.
...
llvm-svn: 128433
2011-03-28 22:49:28 +00:00
Daniel Dunbar
9cf7bc7a6c
Frontend/cc1as: Add support for -L.
...
llvm-svn: 128432
2011-03-28 22:49:24 +00:00
Anton Yartsev
93900c7d1e
refactoring
...
llvm-svn: 128427
2011-03-28 21:00:05 +00:00
Fariborz Jahanian
d0d31bf263
Also 'self' in blocks need be handled specially.
...
// rdar://9181463
llvm-svn: 128410
2011-03-28 16:23:34 +00:00
Eli Friedman
9db11f82a5
Remove stray null from the middle of a comment. (Found because my editor
...
was refusing to open the file.)
llvm-svn: 128402
2011-03-28 02:00:21 +00:00
Matt Beaumont-Gay
93615d9912
Fix PR9572 and neighboring lurking crashers.
...
llvm-svn: 128401
2011-03-28 01:39:13 +00:00
Chandler Carruth
86d17d3f76
Reduce indentation using early exits and add a couple of comments. No
...
functionality changed.
llvm-svn: 128396
2011-03-27 21:26:48 +00:00
Chandler Carruth
82701204a4
Add my test case for r128353. I think this is the last test case to fail
...
to be added... Sorry for the noise.
llvm-svn: 128395
2011-03-27 21:03:41 +00:00
Chandler Carruth
edcc04e05b
Add tests for the uninitialized checks added in r128376. Also clean up
...
and flesh out the existing uninitialized testing for field initializers.
The tests come from Richard's original patch, but I've cleaned them up
a bit and ordered them more naturally.
Also, I added a test for the most simple base case:
int x = x;
And it turns out we miss this one! =[ That and another bad FIXME on the
field initializer checking are left in the test.
llvm-svn: 128394
2011-03-27 20:35:59 +00:00
Ken Dyck
f9742cca31
Convert offset parameter in LayoutPrimaryAndSecondaryVTables() to CharUnits.
...
No change in functionality intended.
llvm-svn: 128393
2011-03-27 20:33:38 +00:00
Ken Dyck
9a7e532dd8
Convert VTableBuilder::MostDerivedClassOffset to CharUnits. No change in
...
functionality intended.
llvm-svn: 128392
2011-03-27 20:20:28 +00:00
Ken Dyck
0d5804a622
Convert FinalOverriders::MostDerivedClassOffset to CharUnits. No change in
...
functionality intended.
llvm-svn: 128391
2011-03-27 20:10:29 +00:00
Chandler Carruth
24284afa2d
Flip the default for showing include stacks on notes to false. This
...
required modifying a few tests that specifically use note include stacks
to check the source manager's view of include stacks. I've simply added
the flag to these tests for now, they may have to be more substantially
changed if we decide to remove support for note include stacks
altogether.
Also, add a test for include stacks on notes that was supposed to go in
with the previous commit.
llvm-svn: 128390
2011-03-27 20:00:08 +00:00
Fariborz Jahanian
b3b1e17645
'self' is objective-c's 'self' objc pointer only in
...
an objc method. Fixes // rdar://9181463
llvm-svn: 128389
2011-03-27 19:53:47 +00:00
Francois Pichet
4e7a2c09b2
Improve recovery (error + fix-it) when parsing type dependent template name without the "template" keyword.
...
For example:
typename C1<T>:: /*template*/ Iterator<0> pos;
Also the error is downgraded to an ExtWarn in Microsoft mode.
llvm-svn: 128387
2011-03-27 19:41:34 +00:00
Ken Dyck
5f3601d35a
Remove a fixed FIXME comment (the base offset has already been converted to
...
CharUnits).
llvm-svn: 128386
2011-03-27 19:19:52 +00:00
Ken Dyck
f4be03ae04
Convert the offset parameters of AddMethods() to CharUnits. No change in
...
functionality intended.
llvm-svn: 128385
2011-03-27 19:15:11 +00:00
Ken Dyck
f736d9cb75
Convert the BaseOffsetInLayoutClass parameter of ComputeThisAdjustment() to
...
CharUnits. No change in functionality intended.
llvm-svn: 128384
2011-03-27 19:03:44 +00:00
Ken Dyck
7d876f3649
Convert offset members in MethodInfo to CharUnits. No change in
...
functionality intended.
llvm-svn: 128383
2011-03-27 18:57:53 +00:00
Anton Yartsev
530deb9a39
AltiVec vector comparison logic now affect only vectors of fundamental AltiVec vector types. It fixes bug 9347.
...
llvm-svn: 128381
2011-03-27 15:36:07 +00:00
Douglas Gregor
0a1650feae
Clang supports __STDC_HOSTED__. Patch by Jonathan Sauer
...
llvm-svn: 128377
2011-03-27 09:49:38 +00:00
Chandler Carruth
33bf3e758d
Diagnose uninitialized uses of a variable within its own initializer.
...
This is basically the same idea as the warning on uninitialized uses of
fields within an initializer list. As such, it is on by default and
under -Wuninitialized.
Original patch by Richard Trieu, with some massaging from me on the
wording and grouping of the diagnostics.
llvm-svn: 128376
2011-03-27 09:46:56 +00:00
Anton Yartsev
28ccef788b
supported: AltiVec vector initialization with a single literal according to PIM section 2.5.1 - after initialization all elements have the value specified by the literal
...
llvm-svn: 128375
2011-03-27 09:32:40 +00:00
John McCall
358d056c14
We were emitting construction v-tables with internal linkage all the time.
...
Emit them instead with the linkage of the VTT.
I'm actually really ambivalent about this; it's what GCC does, but outside
of improving code size (if the linkage is coalescing), I'm not sure it's
at all relevant. Construction vtables are naturally referenced only by the
VTT, which is itself only referenced by complete-object constructors and
destructors; giving the construction vtables possibly-external linkage is
important if you have an optimization that drills through the VTT to a
reference to a particular construction vtable which it cannot just emit
itself.
llvm-svn: 128374
2011-03-27 09:00:25 +00:00
NAKAMURA Takumi
823f3eb142
www/get_started.html: Fix a few URLs.
...
llvm-svn: 128372
2011-03-27 02:04:21 +00:00
Chandler Carruth
b6766f07c8
Add an option to suppress include stack printing on note diagnostics.
...
These stacks are often less important than those on primary diagnostics.
As the number of notes grows, this becomes increasingly important. The
include stack printing is clever and doesn't print stacks for adjacent
diagnostics from the same file, but when a note is in between a sequence
of errors in a header file, and the notes all refer to some other file,
we end up getting a worst-case ping-pong of include stacks that take up
a great deal of vertical space.
Still, for now, the default behavior isn't changed. We can evaluate user
feedback with the flag.
Patch by Richard Trieu, a couple of style tweaks from me.
llvm-svn: 128371
2011-03-27 01:50:55 +00:00
Chandler Carruth
6e50103acd
Add -f[no-]strict-overflow to the Clang driver. Use it to set the
...
default for -fwrapv if that flag isn't specified explicitly. We always
prefer an explict setting of -fwrapv when present. Also adds support for
-fno-wrapv to allow disabling -fwrapv even when -fno-strict-overflow is
passed.
llvm-svn: 128353
2011-03-27 00:04:55 +00:00
Douglas Gregor
a172e08824
Improve -Wheader-hygiene to warn about using directives inside linkage
...
specifications within the global scope, from Elliot Glaysher.
llvm-svn: 128352
2011-03-26 22:25:30 +00:00
Fariborz Jahanian
071caefef2
More coherent diagnostic attempting to assign to a member of a const object returned
...
from an objective-c message: // rdar://9005189
llvm-svn: 128348
2011-03-26 19:48:30 +00:00
Argyrios Kyrtzidis
bbbeea11a8
For Diagnostic::Reset() also reset the state related to #pragma diagnostic. Fixes rdar://9170766.
...
llvm-svn: 128346
2011-03-26 18:58:17 +00:00
Chris Lattner
85222c6b2f
fix the second part of rdar://8366474 - clang fails to parse ObjC selectors with '::', when :: isn't the first part of the selector.
...
llvm-svn: 128344
2011-03-26 18:11:38 +00:00
Fariborz Jahanian
c85269fb40
Make diagnostic clearer.
...
llvm-svn: 128343
2011-03-26 17:07:06 +00:00
Oscar Fuentes
4f444d7c44
Removed workaround for unspecified build problem on MinGW.
...
Tested that MinGW/MSYS builds fine without that.
llvm-svn: 128341
2011-03-26 16:11:33 +00:00
Anders Carlsson
642b03413f
Don't add a symbolic region for 'this' if the member function is static.
...
llvm-svn: 128340
2011-03-26 14:30:44 +00:00
Benjamin Kramer
8aef596dec
Make helpers static.
...
llvm-svn: 128339
2011-03-26 12:38:21 +00:00
Douglas Gregor
7bf3fbe6e1
Add a __has_feature check for the 'availability' attribute
...
llvm-svn: 128337
2011-03-26 12:16:15 +00:00
Douglas Gregor
1baf38f5a6
On Mac OS X, the presence of an 'availability' attribute for that
...
platform implies default visibility. To achieve these, refactor our
lookup of explicit visibility so that we search for both an explicit
VisibilityAttr and an appropriate AvailabilityAttr, favoring the
VisibilityAttr if it is present.
llvm-svn: 128336
2011-03-26 12:10:19 +00:00
David Chisnall
34d00052cb
Reformatted doc comments so that they are now difficult to edit in any editor that doesn't have explicit doxygen support, as per LLVM style guidelines.
...
llvm-svn: 128335
2011-03-26 11:48:37 +00:00
Douglas Gregor
7735c53664
Test attribute merging for the availability attribute.
...
llvm-svn: 128334
2011-03-26 10:47:34 +00:00
Douglas Gregor
7ab142b55a
Extend the new 'availability' attribute with support for an
...
'unavailable' argument, which specifies that the declaration to which
the attribute appertains is unavailable on that platform.
llvm-svn: 128329
2011-03-26 03:35:55 +00:00
John McCall
7853595253
Allow GC qualifiers to be added/removed by conversions from/to void*
...
without a warning.
llvm-svn: 128328
2011-03-26 02:56:45 +00:00
John McCall
4d55f5a893
Don't warn about the 'extern' in 'extern "C"' on a tag decl. This is
...
usually useless, but not always.
llvm-svn: 128326
2011-03-26 02:09:52 +00:00
John McCall
405988b97c
Fix the recovery from missing semis on @property declarations to not consume
...
the following '@'. Conceivably, we could skip tokens until something that
can validly start an @interface declaration here, but it's not clear that
it matters.
llvm-svn: 128325
2011-03-26 01:53:26 +00:00
John McCall
9db0212bc7
Properly move attributes to the decl spec when applying them there.
...
llvm-svn: 128324
2011-03-26 01:39:56 +00:00
Ken Dyck
58863dc46a
Convert the OffsetInLayoutClass parameter of
...
FinalOverriders::ComputeBaseOffsets() to CharUnits. No change in
functionality intended.
llvm-svn: 128323
2011-03-26 01:36:26 +00:00
Ken Dyck
785cbdb6da
Convert FinalOverriders::Offset to CharUnits. No change in functionality
...
intended.
llvm-svn: 128321
2011-03-26 01:29:16 +00:00
Ken Dyck
808457cfd6
Convert offset in MethodBaseOffsetPairTy to CharUnits. No change in
...
functionality intended.
llvm-svn: 128318
2011-03-26 01:18:17 +00:00
Ken Dyck
70b47e08dc
Convert the offsets in SubobjectOffsetMapTy to CharUnits. No change in
...
functionality intended.
llvm-svn: 128317
2011-03-26 01:09:13 +00:00
Ken Dyck
ce81203d9b
Convert several local variables to CharUnits. No change in functionality
...
intended.
llvm-svn: 128315
2011-03-26 00:51:24 +00:00
Ted Kremenek
104f6dfd1f
Tweak grammar in checker description.
...
llvm-svn: 128310
2011-03-26 00:25:42 +00:00
Craig Silverstein
c31d4ce81c
TraverseNestedNameSpecifier -> TraverseNestedNameSpecifierLoc in a few
...
places where we can, now. OK-ed by dgregor.
llvm-svn: 128307
2011-03-25 23:31:36 +00:00
Devang Patel
5f070a51e7
Provide blockDecl's startLoc to startFunction. This fixes hidden bug exposed by recent code gen changes. This is tested by global-blocks-lines.exp in gdb testsuite.
...
llvm-svn: 128303
2011-03-25 21:26:13 +00:00
Daniel Dunbar
7c9295a5b4
Obj-C/NeXT: Update and reapply 108847, now that changes are more baked.
...
llvm-svn: 128300
2011-03-25 20:09:09 +00:00
Eli Friedman
9faf2f902c
Silly mistake in integer constant folding cleanup.
...
llvm-svn: 128297
2011-03-25 19:07:11 +00:00
Daniel Dunbar
67fea71c2d
Driver/Darwin: Dsymutil actions should put the dSYM adjacent to the output file.
...
llvm-svn: 128292
2011-03-25 18:16:51 +00:00
David Chisnall
3e57560c10
Refactor CGObjCMac to use the shared code for EH stuff.
...
Sanity checked by John McCall.
llvm-svn: 128287
2011-03-25 17:46:35 +00:00
Anders Carlsson
69f1f9391b
we can now claim to fully support the override control feature in C++0x.
...
llvm-svn: 128281
2011-03-25 15:04:23 +00:00
Anders Carlsson
65c76d3826
Fixup comments.
...
llvm-svn: 128280
2011-03-25 14:55:14 +00:00
Anders Carlsson
cafbab7443
Remove the last of ClassVirtSpecifiers.
...
llvm-svn: 128279
2011-03-25 14:53:29 +00:00
Anders Carlsson
f9eb63beb7
Replace the call to ParseOptionalCXX0XClassVirtSpecifierSeq with code to only parse an optional 'final' keyword.
...
llvm-svn: 128278
2011-03-25 14:46:08 +00:00
Anders Carlsson
30f29444c0
Get rid of handling of the 'explicit' keyword from class-head. We still parse it though, although that will change shortly.
...
llvm-svn: 128277
2011-03-25 14:31:08 +00:00
Anders Carlsson
843c69119b
Unbreak CMake build.
...
llvm-svn: 128276
2011-03-25 14:16:48 +00:00