~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to include/iprt/assert.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
297
297
    AssertCompile(RT_OFFSETOF(type, member) == (off))
298
298
#endif
299
299
 
 
300
/** @def AssertCompile2MemberOffsets
 
301
 * Asserts that two (sub-structure) members in union have the same offset.
 
302
 * @param   type    The type.
 
303
 * @param   member1 The first member.
 
304
 * @param   member2 The second member.
 
305
 */
 
306
#if defined(__GNUC__) && defined(__cplusplus)
 
307
# if __GNUC__ >= 4
 
308
#  define AssertCompile2MemberOffsets(type, member1, member2) \
 
309
    AssertCompile(__builtin_offsetof(type, member1) == __builtin_offsetof(type, member2))
 
310
# else
 
311
#  define AssertCompile2MemberOffsets(type, member1, member2) \
 
312
    AssertCompile(RT_OFFSETOF(type, member1) == RT_OFFSETOF(type, member2))
 
313
# endif
 
314
#else
 
315
# define AssertCompile2MemberOffsets(type, member1, member2) \
 
316
    AssertCompile(RT_OFFSETOF(type, member1) == RT_OFFSETOF(type, member2))
 
317
#endif
 
318
 
300
319
/** @} */
301
320
 
302
321
 
359
378
#endif
360
379
 
361
380
 
 
381
/** @def AssertStmt
 
382
 * Assert that an expression is true. If false, hit breakpoint and execute the
 
383
 * statement.
 
384
 * @param   expr    Expression which should be true.
 
385
 * @param   stmt    Statement to execute on failure.
 
386
 */
 
387
#ifdef RT_STRICT
 
388
# define AssertStmt(expr, stmt)  \
 
389
    do { \
 
390
        if (RT_UNLIKELY(!(expr))) \
 
391
        { \
 
392
            AssertMsg1(#expr, __LINE__, __FILE__, __PRETTY_FUNCTION__); \
 
393
            RTAssertPanic(); \
 
394
            stmt; \
 
395
        } \
 
396
    } while (0)
 
397
#else
 
398
# define AssertStmt(expr, stmt)  \
 
399
    do { \
 
400
        if (RT_UNLIKELY(!(expr))) \
 
401
        { \
 
402
            stmt; \
 
403
        } \
 
404
    } while (0)
 
405
#endif
 
406
 
 
407
 
362
408
/** @def AssertReturn
363
409
 * Assert that an expression is true and returns if it isn't.
364
410
 * In RT_STRICT mode it will hit a breakpoint before returning.
1670
1716
 * On failure it will print info about the rc and hit a breakpoint.
1671
1717
 *
1672
1718
 * @param   rc  iprt status code.
1673
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1719
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1674
1720
 */
1675
1721
#define AssertRC(rc)                AssertMsgRC(rc, ("%Rra\n", (rc)))
1676
1722
 
1679
1725
 *
1680
1726
 * @param   rc      iprt status code.
1681
1727
 * @param   rcRet   What is to be presented to return.
1682
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1728
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1683
1729
 */
1684
1730
#define AssertRCReturn(rc, rcRet)   AssertMsgRCReturn(rc, ("%Rra\n", (rc)), rcRet)
1685
1731
 
1687
1733
 * Asserts a iprt status code successful, bitch (RT_STRICT mode only) and return if it isn't.
1688
1734
 *
1689
1735
 * @param   rc      iprt status code.
1690
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1736
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1691
1737
 */
1692
1738
#define AssertRCReturnVoid(rc)      AssertMsgRCReturnVoid(rc, ("%Rra\n", (rc)))
1693
1739
 
1695
1741
 * Asserts a iprt status code successful, bitch (RT_STRICT mode only) and break if it isn't.
1696
1742
 *
1697
1743
 * @param   rc      iprt status code.
1698
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1744
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1699
1745
 */
1700
1746
#define AssertRCBreak(rc)           AssertMsgRCBreak(rc, ("%Rra\n", (rc)))
1701
1747
 
1704
1750
 *
1705
1751
 * @param   rc      iprt status code.
1706
1752
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1707
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1753
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1708
1754
 */
1709
1755
#define AssertRCBreakStmt(rc, stmt) AssertMsgRCBreakStmt(rc, ("%Rra\n", (rc)), stmt)
1710
1756
 
1715
1761
 *
1716
1762
 * @param   rc      iprt status code.
1717
1763
 * @param   msg     printf argument list (in parenthesis).
1718
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1764
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1719
1765
 */
1720
1766
#define AssertMsgRC(rc, msg) \
1721
1767
    do { AssertMsg(RT_SUCCESS_NP(rc), msg); NOREF(rc); } while (0)
1728
1774
 * @param   rc      iprt status code.
1729
1775
 * @param   msg     printf argument list (in parenthesis).
1730
1776
 * @param   rcRet   What is to be presented to return.
1731
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1777
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1732
1778
 */
1733
1779
#define AssertMsgRCReturn(rc, msg, rcRet) \
1734
1780
    do { AssertMsgReturn(RT_SUCCESS_NP(rc), msg, rcRet); NOREF(rc); } while (0)
1740
1786
 *
1741
1787
 * @param   rc      iprt status code.
1742
1788
 * @param   msg     printf argument list (in parenthesis).
1743
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1789
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1744
1790
 */
1745
1791
#define AssertMsgRCReturnVoid(rc, msg) \
1746
1792
    do { AssertMsgReturnVoid(RT_SUCCESS_NP(rc), msg); NOREF(rc); } while (0)
1752
1798
 *
1753
1799
 * @param   rc      iprt status code.
1754
1800
 * @param   msg     printf argument list (in parenthesis).
1755
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1801
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1756
1802
 */
1757
1803
#define AssertMsgRCBreak(rc, msg) \
1758
1804
    if (1) { AssertMsgBreak(RT_SUCCESS(rc), msg); NOREF(rc); } else do {} while (0)
1765
1811
 * @param   rc      iprt status code.
1766
1812
 * @param   msg     printf argument list (in parenthesis).
1767
1813
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1768
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1814
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1769
1815
 */
1770
1816
#define AssertMsgRCBreakStmt(rc, msg, stmt) \
1771
1817
    if (1) { AssertMsgBreakStmt(RT_SUCCESS_NP(rc), msg, stmt); NOREF(rc); } else do {} while (0)
1776
1822
 * On failure it will print info about the rc and hit a breakpoint.
1777
1823
 *
1778
1824
 * @param   rc  iprt status code.
1779
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1825
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1780
1826
 */
1781
1827
#define AssertRCSuccess(rc)                 AssertMsg((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1782
1828
 
1785
1831
 *
1786
1832
 * @param   rc      iprt status code.
1787
1833
 * @param   rcRet   What is to be presented to return.
1788
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1834
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1789
1835
 */
1790
1836
#define AssertRCSuccessReturn(rc, rcRet)    AssertMsgReturn((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), rcRet)
1791
1837
 
1793
1839
 * Asserts that an iprt status code equals VINF_SUCCESS, bitch (RT_STRICT mode only) and return if it isn't.
1794
1840
 *
1795
1841
 * @param   rc      iprt status code.
1796
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1842
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1797
1843
 */
1798
1844
#define AssertRCSuccessReturnVoid(rc)       AssertMsgReturnVoid((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1799
1845
 
1801
1847
 * Asserts that an iprt status code equals VINF_SUCCESS, bitch (RT_STRICT mode only) and break if it isn't.
1802
1848
 *
1803
1849
 * @param   rc      iprt status code.
1804
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1850
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1805
1851
 */
1806
1852
#define AssertRCSuccessBreak(rc)            AssertMsgBreak((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1807
1853
 
1810
1856
 *
1811
1857
 * @param   rc      iprt status code.
1812
1858
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1813
 
 * @remark  rc is references multiple times. In release mode is NOREF()'ed.
 
1859
 * @remark  rc is referenced multiple times. In release mode is NOREF()'ed.
1814
1860
 */
1815
1861
#define AssertRCSuccessBreakStmt(rc, stmt)  AssertMsgBreakStmt((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), stmt)
1816
1862
 
1819
1865
 * Asserts a iprt status code successful.
1820
1866
 *
1821
1867
 * @param   rc  iprt status code.
1822
 
 * @remark  rc is references multiple times.
 
1868
 * @remark  rc is referenced multiple times.
1823
1869
 */
1824
1870
#define AssertLogRelRC(rc)                      AssertLogRelMsgRC(rc, ("%Rra\n", (rc)))
1825
1871
 
1828
1874
 *
1829
1875
 * @param   rc      iprt status code.
1830
1876
 * @param   rcRet   What is to be presented to return.
1831
 
 * @remark  rc is references multiple times.
 
1877
 * @remark  rc is referenced multiple times.
1832
1878
 */
1833
1879
#define AssertLogRelRCReturn(rc, rcRet)         AssertLogRelMsgRCReturn(rc, ("%Rra\n", (rc)), rcRet)
1834
1880
 
1836
1882
 * Asserts a iprt status code successful, returning (void) if it isn't.
1837
1883
 *
1838
1884
 * @param   rc      iprt status code.
1839
 
 * @remark  rc is references multiple times.
 
1885
 * @remark  rc is referenced multiple times.
1840
1886
 */
1841
1887
#define AssertLogRelRCReturnVoid(rc)            AssertLogRelMsgRCReturnVoid(rc, ("%Rra\n", (rc)))
1842
1888
 
1844
1890
 * Asserts a iprt status code successful, breaking if it isn't.
1845
1891
 *
1846
1892
 * @param   rc      iprt status code.
1847
 
 * @remark  rc is references multiple times.
 
1893
 * @remark  rc is referenced multiple times.
1848
1894
 */
1849
1895
#define AssertLogRelRCBreak(rc)                 AssertLogRelMsgRCBreak(rc, ("%Rra\n", (rc)))
1850
1896
 
1853
1899
 *
1854
1900
 * @param   rc      iprt status code.
1855
1901
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1856
 
 * @remark  rc is references multiple times.
 
1902
 * @remark  rc is referenced multiple times.
1857
1903
 */
1858
1904
#define AssertLogRelRCBreakStmt(rc, stmt)       AssertLogRelMsgRCBreakStmt(rc, ("%Rra\n", (rc)), stmt)
1859
1905
 
1862
1908
 *
1863
1909
 * @param   rc      iprt status code.
1864
1910
 * @param   msg     printf argument list (in parenthesis).
1865
 
 * @remark  rc is references multiple times.
 
1911
 * @remark  rc is referenced multiple times.
1866
1912
 */
1867
1913
#define AssertLogRelMsgRC(rc, msg)              AssertLogRelMsg(RT_SUCCESS_NP(rc), msg)
1868
1914
 
1872
1918
 * @param   rc      iprt status code.
1873
1919
 * @param   msg     printf argument list (in parenthesis).
1874
1920
 * @param   rcRet   What is to be presented to return.
1875
 
 * @remark  rc is references multiple times.
 
1921
 * @remark  rc is referenced multiple times.
1876
1922
 */
1877
1923
#define AssertLogRelMsgRCReturn(rc, msg, rcRet) AssertLogRelMsgReturn(RT_SUCCESS_NP(rc), msg, rcRet)
1878
1924
 
1881
1927
 *
1882
1928
 * @param   rc      iprt status code.
1883
1929
 * @param   msg     printf argument list (in parenthesis).
1884
 
 * @remark  rc is references multiple times.
 
1930
 * @remark  rc is referenced multiple times.
1885
1931
 */
1886
1932
#define AssertLogRelMsgRCReturnVoid(rc, msg)    AssertLogRelMsgReturnVoid(RT_SUCCESS_NP(rc), msg)
1887
1933
 
1890
1936
 *
1891
1937
 * @param   rc      iprt status code.
1892
1938
 * @param   msg     printf argument list (in parenthesis).
1893
 
 * @remark  rc is references multiple times.
 
1939
 * @remark  rc is referenced multiple times.
1894
1940
 */
1895
1941
#define AssertLogRelMsgRCBreak(rc, msg)         AssertLogRelMsgBreak(RT_SUCCESS(rc), msg)
1896
1942
 
1900
1946
 * @param   rc      iprt status code.
1901
1947
 * @param   msg     printf argument list (in parenthesis).
1902
1948
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1903
 
 * @remark  rc is references multiple times.
 
1949
 * @remark  rc is referenced multiple times.
1904
1950
 */
1905
1951
#define AssertLogRelMsgRCBreakStmt(rc, msg, stmt) AssertLogRelMsgBreakStmt(RT_SUCCESS_NP(rc), msg, stmt)
1906
1952
 
1908
1954
 * Asserts that an iprt status code equals VINF_SUCCESS.
1909
1955
 *
1910
1956
 * @param   rc  iprt status code.
1911
 
 * @remark  rc is references multiple times.
 
1957
 * @remark  rc is referenced multiple times.
1912
1958
 */
1913
1959
#define AssertLogRelRCSuccess(rc)               AssertLogRelMsg((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1914
1960
 
1917
1963
 *
1918
1964
 * @param   rc      iprt status code.
1919
1965
 * @param   rcRet   What is to be presented to return.
1920
 
 * @remark  rc is references multiple times.
 
1966
 * @remark  rc is referenced multiple times.
1921
1967
 */
1922
1968
#define AssertLogRelRCSuccessReturn(rc, rcRet)  AssertLogRelMsgReturn((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), rcRet)
1923
1969
 
1925
1971
 * Asserts that an iprt status code equals VINF_SUCCESS.
1926
1972
 *
1927
1973
 * @param   rc      iprt status code.
1928
 
 * @remark  rc is references multiple times.
 
1974
 * @remark  rc is referenced multiple times.
1929
1975
 */
1930
1976
#define AssertLogRelRCSuccessReturnVoid(rc)     AssertLogRelMsgReturnVoid((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1931
1977
 
1933
1979
 * Asserts that an iprt status code equals VINF_SUCCESS.
1934
1980
 *
1935
1981
 * @param   rc      iprt status code.
1936
 
 * @remark  rc is references multiple times.
 
1982
 * @remark  rc is referenced multiple times.
1937
1983
 */
1938
1984
#define AssertLogRelRCSuccessBreak(rc)          AssertLogRelMsgBreak((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
1939
1985
 
1942
1988
 *
1943
1989
 * @param   rc      iprt status code.
1944
1990
 * @param   stmt    Statement to execute before break in case of a failed assertion.
1945
 
 * @remark  rc is references multiple times.
 
1991
 * @remark  rc is referenced multiple times.
1946
1992
 */
1947
1993
#define AssertLogRelRCSuccessBreakStmt(rc, stmt) AssertLogRelMsgBreakStmt((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), stmt)
1948
1994
 
1953
1999
 * On failure information about the error will be printed and a breakpoint hit.
1954
2000
 *
1955
2001
 * @param   rc  iprt status code.
1956
 
 * @remark  rc is references multiple times.
 
2002
 * @remark  rc is referenced multiple times.
1957
2003
 */
1958
2004
#define AssertReleaseRC(rc)                 AssertReleaseMsgRC(rc, ("%Rra\n", (rc)))
1959
2005
 
1965
2011
 *
1966
2012
 * @param   rc      iprt status code.
1967
2013
 * @param   rcRet   What is to be presented to return.
1968
 
 * @remark  rc is references multiple times.
 
2014
 * @remark  rc is referenced multiple times.
1969
2015
 */
1970
2016
#define AssertReleaseRCReturn(rc, rcRet)    AssertReleaseMsgRCReturn(rc, ("%Rra\n", (rc)), rcRet)
1971
2017
 
1976
2022
 * and finally returning from the function if the breakpoint is somehow ignored.
1977
2023
 *
1978
2024
 * @param   rc      iprt status code.
1979
 
 * @remark  rc is references multiple times.
 
2025
 * @remark  rc is referenced multiple times.
1980
2026
 */
1981
2027
#define AssertReleaseRCReturnVoid(rc)       AssertReleaseMsgRCReturnVoid(rc, ("%Rra\n", (rc)))
1982
2028
 
1987
2033
 * and finally breaking the current statement if the breakpoint is somehow ignored.
1988
2034
 *
1989
2035
 * @param   rc      iprt status code.
1990
 
 * @remark  rc is references multiple times.
 
2036
 * @remark  rc is referenced multiple times.
1991
2037
 */
1992
2038
#define AssertReleaseRCBreak(rc)            AssertReleaseMsgRCBreak(rc, ("%Rra\n", (rc)))
1993
2039
 
1999
2045
 *
2000
2046
 * @param   rc      iprt status code.
2001
2047
 * @param   stmt    Statement to execute before break in case of a failed assertion.
2002
 
 * @remark  rc is references multiple times.
 
2048
 * @remark  rc is referenced multiple times.
2003
2049
 */
2004
2050
#define AssertReleaseRCBreakStmt(rc, stmt)  AssertReleaseMsgRCBreakStmt(rc, ("%Rra\n", (rc)), stmt)
2005
2051
 
2010
2056
 *
2011
2057
 * @param   rc      iprt status code.
2012
2058
 * @param   msg     printf argument list (in parenthesis).
2013
 
 * @remark  rc is references multiple times.
 
2059
 * @remark  rc is referenced multiple times.
2014
2060
 */
2015
2061
#define AssertReleaseMsgRC(rc, msg)         AssertReleaseMsg(RT_SUCCESS_NP(rc), msg)
2016
2062
 
2023
2069
 * @param   rc      iprt status code.
2024
2070
 * @param   msg     printf argument list (in parenthesis).
2025
2071
 * @param   rcRet   What is to be presented to return.
2026
 
 * @remark  rc is references multiple times.
 
2072
 * @remark  rc is referenced multiple times.
2027
2073
 */
2028
2074
#define AssertReleaseMsgRCReturn(rc, msg, rcRet)    AssertReleaseMsgReturn(RT_SUCCESS_NP(rc), msg, rcRet)
2029
2075
 
2035
2081
 *
2036
2082
 * @param   rc      iprt status code.
2037
2083
 * @param   msg     printf argument list (in parenthesis).
2038
 
 * @remark  rc is references multiple times.
 
2084
 * @remark  rc is referenced multiple times.
2039
2085
 */
2040
2086
#define AssertReleaseMsgRCReturnVoid(rc, msg)    AssertReleaseMsgReturnVoid(RT_SUCCESS_NP(rc), msg)
2041
2087
 
2047
2093
 *
2048
2094
 * @param   rc      iprt status code.
2049
2095
 * @param   msg     printf argument list (in parenthesis).
2050
 
 * @remark  rc is references multiple times.
 
2096
 * @remark  rc is referenced multiple times.
2051
2097
 */
2052
2098
#define AssertReleaseMsgRCBreak(rc, msg)        AssertReleaseMsgBreak(RT_SUCCESS(rc), msg)
2053
2099
 
2060
2106
 * @param   rc      iprt status code.
2061
2107
 * @param   msg     printf argument list (in parenthesis).
2062
2108
 * @param   stmt    Statement to execute before break in case of a failed assertion.
2063
 
 * @remark  rc is references multiple times.
 
2109
 * @remark  rc is referenced multiple times.
2064
2110
 */
2065
2111
#define AssertReleaseMsgRCBreakStmt(rc, msg, stmt)  AssertReleaseMsgBreakStmt(RT_SUCCESS_NP(rc), msg, stmt)
2066
2112
 
2070
2116
 * On failure information about the error will be printed and a breakpoint hit.
2071
2117
 *
2072
2118
 * @param   rc  iprt status code.
2073
 
 * @remark  rc is references multiple times.
 
2119
 * @remark  rc is referenced multiple times.
2074
2120
 */
2075
2121
#define AssertReleaseRCSuccess(rc)                  AssertReleaseMsg((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
2076
2122
 
2082
2128
 *
2083
2129
 * @param   rc      iprt status code.
2084
2130
 * @param   rcRet   What is to be presented to return.
2085
 
 * @remark  rc is references multiple times.
 
2131
 * @remark  rc is referenced multiple times.
2086
2132
 */
2087
2133
#define AssertReleaseRCSuccessReturn(rc, rcRet)     AssertReleaseMsgReturn((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), rcRet)
2088
2134
 
2093
2139
 * and finally returning from the function if the breakpoint is somehow ignored.
2094
2140
 *
2095
2141
 * @param   rc      iprt status code.
2096
 
 * @remark  rc is references multiple times.
 
2142
 * @remark  rc is referenced multiple times.
2097
2143
 */
2098
2144
#define AssertReleaseRCSuccessReturnVoid(rc)     AssertReleaseMsgReturnVoid((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
2099
2145
 
2104
2150
 * and finally breaking the current statement if the breakpoint is somehow ignored.
2105
2151
 *
2106
2152
 * @param   rc      iprt status code.
2107
 
 * @remark  rc is references multiple times.
 
2153
 * @remark  rc is referenced multiple times.
2108
2154
 */
2109
2155
#define AssertReleaseRCSuccessBreak(rc)         AssertReleaseMsgBreak((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
2110
2156
 
2116
2162
 *
2117
2163
 * @param   rc      iprt status code.
2118
2164
 * @param   stmt    Statement to execute before break in case of a failed assertion.
2119
 
 * @remark  rc is references multiple times.
 
2165
 * @remark  rc is referenced multiple times.
2120
2166
 */
2121
2167
#define AssertReleaseRCSuccessBreakStmt(rc, stmt)   AssertReleaseMsgBreakStmt((rc) == VINF_SUCCESS, ("%Rra\n", (rc)), stmt)
2122
2168
 
2127
2173
 * On failure information about the error will be printed and a breakpoint hit.
2128
2174
 *
2129
2175
 * @param   rc  iprt status code.
2130
 
 * @remark  rc is references multiple times.
 
2176
 * @remark  rc is referenced multiple times.
2131
2177
 */
2132
2178
#define AssertFatalRC(rc)               AssertFatalMsgRC(rc, ("%Rra\n", (rc)))
2133
2179
 
2138
2184
 *
2139
2185
 * @param   rc      iprt status code.
2140
2186
 * @param   msg     printf argument list (in parenthesis).
2141
 
 * @remark  rc is references multiple times.
 
2187
 * @remark  rc is referenced multiple times.
2142
2188
 */
2143
2189
#define AssertFatalMsgRC(rc, msg)       AssertFatalMsg(RT_SUCCESS_NP(rc), msg)
2144
2190
 
2148
2194
 * On failure information about the error will be printed and a breakpoint hit.
2149
2195
 *
2150
2196
 * @param   rc  iprt status code.
2151
 
 * @remark  rc is references multiple times.
 
2197
 * @remark  rc is referenced multiple times.
2152
2198
 */
2153
2199
#define AssertFatalRCSuccess(rc)        AssertFatalMsg((rc) == VINF_SUCCESS, ("%Rra\n", (rc)))
2154
2200