<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - CMAKE defines NDEBUG differently than Autoconf for Assertions."
   href="http://llvm.org/bugs/show_bug.cgi?id=22798">22798</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>CMAKE defines NDEBUG differently than Autoconf for Assertions.
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>rfoos@codeaurora.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu, ted.woodward@codeaurora.org, zturner@google.com
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>When going through _DEBUG, NDEBUG definitions found a difference between
autoconf and cmake.

    llvm/Makefile.rules (MSVC case not applicable)

        ifeq ($(DISABLE_ASSERTIONS),1)
          CPP.Defines += -DNDEBUG
        else
          BuildMode := $(BuildMode)+Asserts
          CPP.Defines += -D_DEBUG
        endif

    llvm/cmake/modules/HandleLLVMOptions.cmake

        if( LLVM_ENABLE_ASSERTIONS )
          # MSVC doesn't like _DEBUG on release builds. See PR 4379.
          if( NOT MSVC )
            add_definitions( -D_DEBUG )
          endif()
          # On non-Debug builds cmake automatically defines NDEBUG, so we
          # explicitly undefine it:
          if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
            add_definitions( -UNDEBUG )
            # Also remove /D NDEBUG to avoid MSVC warnings about conflicting
defines.
            foreach (flags_var_to_scrub
                CMAKE_CXX_FLAGS_RELEASE
                CMAKE_CXX_FLAGS_RELWITHDEBINFO
                CMAKE_CXX_FLAGS_MINSIZEREL
                CMAKE_C_FLAGS_RELEASE
                CMAKE_C_FLAGS_RELWITHDEBINFO
                CMAKE_C_FLAGS_MINSIZEREL)
              string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
                "${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
            endforeach()
          endif()
          --- BUG different than autoconf, if not msvc, -DNDEBUG
          if( NOT MSVC )
            add_definitions( -DNDEBUG )
          endif()
          ---
        endif()</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>