X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCodingStandards.html;h=a99e46e5b5801c5dc8acfb113542533125e26cd5;hb=6fa1c051dc515b6fd1f9a26ac12fed985469bff5;hp=fd27985be4919e7592fcbdb5a7e83b86edf6dc63;hpb=5da59b1fe2d12060c9a40dff7a7c22e2ac96c9bb;p=oota-llvm.git diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html index fd27985be49..a99e46e5b58 100644 --- a/docs/CodingStandards.html +++ b/docs/CodingStandards.html @@ -122,9 +122,9 @@ documentation is very useful:
File Headers -Every source file should have a header on it that -describes the basic purpose of the file. If a file does not have a header, it -should not be checked into CVS. Most source trees will probably have a standard +
Every source file should have a header on it that describes the basic +purpose of the file. If a file does not have a header, it should not be +checked into Subversion. Most source trees will probably have a standard file header format. The standard format for the LLVM source tree looks like this:
@@ -134,8 +134,8 @@ this: // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -154,9 +154,9 @@ on the first line, along with a very short description of the purpose of the file. This is important when printing out code and flipping though lots of pages. -The next section in the file is a concise note that defines the license that -the file is released under. This makes it perfectly clear what terms the source -code can be distributed under.
+The next section in the file is a concise note that defines the license +that the file is released under. This makes it perfectly clear what terms the +source code can be distributed under and should not be modified in any way.
The main body of the description does not have to be very long in most cases. Here it's only two lines. If an algorithm is being implemented or something @@ -503,14 +503,15 @@ library. There are two problems with this:
Old Way | @@ -524,7 +525,7 @@ library. There are two problems with this:DEBUG(std::cerr << ...); DEBUG(dump(std::cerr)); |
DOUT << ...; -dump(DOUT); |
+DEBUG(dump(DOUT));
|
---|---|---|---|
std::cerr << "Hello world\n"; |
@@ -551,19 +552,21 @@ dump(DOUT);
llvm::StringStream |
||
void print(std::ostream &Out); + |
1llvm::OStream is a light-weight class so it should never +be passed by reference. This is important because in some configurations, +DOUT is an rvalue.
+You get the idea...
+Please be aware when adding assert statements that not all compilers are aware of +the semantics of the assert. In some places, asserts are used to indicate a piece of +code that should not be reached. These are typically of the form:
+ ++assert(0 && "Some helpful error message"); ++
When used in a function that returns a value, they should be followed with a return +statement and a comment indicating that this line is never reached. This will prevent +a compiler which is unable to deduce that the assert statement never returns from +generating a warning.
+ ++assert(0 && "Some helpful error message"); +// Not reached +return 0; ++