bugGNU Octave - Bugs: bug #62013, Multiple test failures when Octave...

 
 

bug #62013: Multiple test failures when Octave is compiled with -DNDEBUG

Submitter:  Rik <rik5>
Submitted:  Wed 09 Feb 2022 10:58:26 PM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * 7.0.90 Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sat 12 Feb 2022 05:55:54 PM UTC, comment #3: 

I pushed the patch to the stable branch and merged with default.

Marking as Fixed and closing report.

Rik <rik5>
Group administrator
Thu 10 Feb 2022 07:12:48 AM UTC, comment #2: 

That change looks pretty save to me. And the compiler will probably optimize away the additional assignment when compiling without NDEBUG.
Imho, it would be ok to apply this on the stable branch.

Are there other places in the code base where functions (that shouldn't be skipped) are executed as an argument of the `assert` macro?

Markus Mützel <mmuetzel>
Group administrator
Wed 09 Feb 2022 11:16:03 PM UTC, comment #1: 

Turns out this was a pretty easy fix.  A patch is attached for the stable branch if we want to do it there.

(file #52830)

Rik <rik5>
Group administrator
Wed 09 Feb 2022 10:58:26 PM UTC, original submission:  

I set the shell variable CPPFLAGS to '-DNDEBUG' which should have the effect that assert() statements are ignored in the code.  The pre-processor definition "NDEBUG" stands for "No DEBUG" and is appropriate when code is transitioned from development to release.

There may be a slight performance benefit to removing code that is only used during the development phase.  Even if there is no performance improvement, the code should compile with or without this definition and work correctly.

However, when I compile the code I get several warnings


libinterp/corefcn/dot.cc:41:54: warning: unused parameter ‘y’ [-Wunused-parameter]
libinterp/corefcn/graphics.cc:5500:52: warning: unused parameter ‘mode’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:127:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/operators/ops.h:142:59: warning: unused parameter ‘idx’ [-Wunused-parameter]
libinterp/parse-tree/lex.ll:3181:9: warning: variable ‘nread’ set but not used [-Wunused-but-set-variable]
libinterp/parse-tree/lex.ll:3305:62: warning: ‘long_int_val’ may be used uninitialized in this function [-Wmaybe-uninitialized]
liboctave/array/Array-util.cc:345:19: warning: unused variable ‘idx_n’ [-Wunused-variable]


When I run Octave, simple things like hex constants no longer work.


octave:1> y = 0xF
y = 0


Running 'make check' also shows multiple test failures.

One question for this bug report is whether this should apply to the 7.0.90 release and get fixed there, or whether we should just fix the issue on the development branch.

Rik <rik5>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #52830:  bug62013.cset added by rik5 (1KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by rik5 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-02-12 rik5 StatusPatch Submitted Fixed
        Open/ClosedOpen Closed
    2022-02-09 rik5 Attached File- Added bug62013.cset, #52830
        StatusConfirmed Patch Submitted

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code