X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCodingStandards.html;h=a99e46e5b5801c5dc8acfb113542533125e26cd5;hb=73b43b9b549a75fb0015c825df68abd95705a67c;hp=2121714db6548a63ec515669f0cc1a2021835265;hpb=4f6766d41e867948357e95168c40f20465ee27c6;p=oota-llvm.git diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html index 2121714db65..a99e46e5b58 100644 --- a/docs/CodingStandards.html +++ b/docs/CodingStandards.html @@ -134,8 +134,8 @@ this:

// // The LLVM Compiler Infrastructure // -// This file was developed by <whoever started the file> 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. // //===----------------------------------------------------------------------===// // @@ -146,9 +146,7 @@ this:

-

A few things to note about this particular format: The 'developed by' line -should be the name of the person or organization who initially contributed the -file. The "-*- C++ +

A few things to note about this particular format: The "-*- C++ -*-" string on the first line is there to tell Emacs that the source file is a C++ file, not a C file (Emacs assumes .h files are C files by default). Note that this tag is not necessary in .cpp files. The name of the file is also @@ -156,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 @@ -625,6 +623,29 @@ assert(isa<PHINode>(Succ->front()) && "Only works on PHId BBs!"

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;
+
+
+ @@ -737,15 +758,12 @@ sources. Two particularly important books for our work are:

    -
  1. Effective -C++ by Scott Meyers. There is an online version of the book (only some -chapters though) available as well. Also +
  2. Effective +C++ by Scott Meyers. Also interesting and useful are "More Effective C++" and "Effective STL" by the same author.
  3. -
  4. Large-Scale C++ -Software Design by John Lakos
  5. +
  6. Large-Scale C++ Software Design by John Lakos